使用实体框架正确查询
本文关键字:查询 框架 实体 | 更新日期: 2023-09-27 17:55:00
我有两个表"Users"answers"UserType"。在"userTypeID"列上,这些表之间存在关系。这一列是"UserType"表中的主键和"User"表中的外键。我也有一个属性在"用户"类如下:
public virtual UserType usertype{ get; set; }
我正在查询"User"表,如下所示:
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。用户类型为空。我需要在userList中有UserType。我做错了什么?I am new to Entity Framework.
包含在class的顶部:
using System.Data.Entity
然后修改你的查询:
userList = DBContext.User
.Include(u => u.usertype)
.Where(x => x.IsActive)
.OrderBy(i => i.userName)
.ToList();
这叫做Eager Loading
。你可以在这里阅读更多信息:加载相关实体
你必须明确地包括你的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();