我正在为我的课程工作做一个项目,我正在使用数据库第一个实体框架并将我的DBContext类作为
public partial class StudentDBEntities : DbContext
{
public DbSet<LoginDetail> LoginDetails { get; set; }
public DbSet<StudentDetail> StudentDetails { get; set; }
public DbSet<UserFriend> UserFriends { get; set; }
}
现在我创建了一个模型对象,如下所示,使用此模型传递视图。
public class ViewStudentDetail
{
public StudentDetail Student { get; set; }
public UserFriend Friends { get; set; }
}
这是我的StudentDetail类创建的默认
public partial class StudentDetail
{
public StudentDetail()
{
this.UserFriends = new HashSet<UserFriend>();
}
public string StudentName { get; set; }
public string UnivName { get; set; }
public string City { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string EmailId { get; set; }
public virtual ICollection<UserFriend> UserFriends { get; set; }
}
在我的视图中我找到了一个朋友场景,并且传递的文本框值是ViewStudentDetail.Friends.username.to post方法
我的问题是我想将DbContext对象中给定用户名的StudentDetails(在注册期间已经保存在数据库中)分配给模型对象 在我的控制器中我喜欢这个
StudentDBEntities DbAccess = new StudentDBEntities();
ViewStudentDetail Studentdetails = new ViewStudentDetail();
Studentdetails.Student = DbAccess.StudentDetails .Find(username);
此分配无效,并且分配为null。 你能否告诉我如何将db中的值提取到模型对象中。此外,如果我需要将每个属性分配给模型,请帮助我从db对象获取语法。
答案 0 :(得分:0)
DbSet.Find()方法仅搜索PRIMARY KEY匹配,它不会搜索实体上的所有/任何属性。
我认为你正在寻找这样的东西:
ViewStudentDetail.Student = DbAccess.StudentDetails.FirstOrDefault(student => student.Username == username);
如果没有,请在您的问题中提供更多源代码。具体来说,请包括生成的实体类。