实体框架核心中没有嵌套结果

Kro*_*Kro 2 c# entity-framework-core asp.net-core

我在C#中有一个奇怪的行为,它是一个带有EF Core 1.1.0的.NET核心项目

"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
Run Code Online (Sandbox Code Playgroud)

我创建了两个模型,"用户"和"组"

 public class User
 {
    public int Id { get; set; }
    public string name { get; set; }
    public string lastName { get; set; }

    public List<Group> Groups { get; set; }
 }

 public class Group
 {
    public int Id { get; set; }
    public string groupName { get; set; }
    public virtual User User { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

结果可以给我一个用户列表他的组.

现在奇怪的部分:

结果从DB返回,我查看allUser,Groups is Null

我将查看上下文以查看组

小组填写:

团体被填补

现在我再次查看allUser Result,神奇地在每个User项内填充Group.

组内填充用户:

组内填充用户

我非常感谢任何帮助!!

Dar*_*ren 6

看起来你懒得加载实体.

您可以通过使用来急切加载它们.Include.

 var allUsers = context.Users.Include(user => user.Groups).ToList();
Run Code Online (Sandbox Code Playgroud)

此方法将第一个实体(用户)以及相关实体作为查询(组)的一部分加载.

  • Entity Framework Core没有延迟加载.例如,LazyLoadingEnabled将不可用.更多信息:https://docs.microsoft.com/en-us/ef/core/querying/related-data(EF Core无法进行延迟加载.) (2认同)