0

我正在为我的课程工作做一个项目,我正在使用数据库优先实体框架并将我的 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 方法

我的问题是我想将具有给定用户名的 StudentDetails 从 DbContext 对象(注册期间已保存在数据库中)分配给模型对象在我的控制器中我有这样的

  StudentDBEntities DbAccess = new StudentDBEntities();
 ViewStudentDetail Studentdetails = new ViewStudentDetail();
    Studentdetails.Student = DbAccess.StudentDetails .Find(username);

此分配不起作用并且分配为空。您能否告诉我如何将 db 中的值获取到模型对象。另外,如果我需要将每个属性分配给模型,请帮助我使用从 db 对象中获取的语法。

4

1 回答 1

0

DbSet.Find ()方法仅搜索 PRIMARY KEY 匹配项,它不会搜索实体上的所有/任何属性。

我想你正在寻找这样的东西:

ViewStudentDetail.Student = DbAccess.StudentDetails.FirstOrDefault(student => student.Username == username);

如果没有,请在您的问题中提供更多源代码。具体来说,请包括生成的实体类。

于 2013-04-17T00:18:55.593 回答