我有两个表“Users”和“UserType”。 “userTypeID”列上的这些表之间存在关系。此列是“UserType”表中的主键和“User”表中的外键。我在“用户”类中也有一个属性,如下所示:
public virtual UserType usertype{ get; set; }
我正在查询“用户”表格如下:
List<MyApp.Entity.Models.User> userList = new List<User>();
using (var DBContext = new UserDBContext())
{
userList = DBContext.User.Where(x => x.IsActive == true).OrderBy(i => i.userName).ToList();
return userList;
}
当我调试代码时,userList.usertype为null。我需要在userList中有UserType。我究竟做错了什么?我是Entity Framework的新手。
答案 0 :(得分:1)
包含在班级的顶部:
using System.Data.Entity
然后像这样修改您的查询:
userList = DBContext.User
.Include(u => u.usertype)
.Where(x => x.IsActive)
.OrderBy(i => i.userName)
.ToList();
这称为Eager Loading
。您可以在此处详细了解:Loading Related Entities
答案 1 :(得分:1)
您必须明确包含usertype
。
userList = DBContext.User
.Include("usertype")
.Where(x => x.IsActive == true).OrderBy(i => i.userName).ToList();
或者使用lambda:
添加using System.Data.Entity;
userList = DBContext.User
.Include(x => x.usertype)
.Where(x => x.IsActive == true).OrderBy(i => i.userName).ToList();