使用实体框架正确查询

本文关键字:查询 框架 实体 | 更新日期: 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();