-1

一旦延迟加载尚未在 Entity Framework Core 上实现,我如何从类中加载导航属性,但前提是在使用 Entity Framework Core 之前未加载它。例如。这节课

class MyClass{
    // ...
    IEnumerable<Child> Children {get;set;}

    public int CountChildren(){
         return children.Count();
    }
}

我只能使用myinstance.CountChildren()if Childrenwas loaded 来计算孩子的数量,例如使用急切加载或显式加载

但我想验证Children之前是否加载了导航属性。如果没有,则强制它加载。这有可能吗?我该怎么做?

4

2 回答 2

2

我想验证之前是否加载了 Children 导航属性。如果没有,则强制加载

更改跟踪器具有此信息。例如

        var user = db.Users.First();
        var groups = db.Entry(user).Collection(u => u.UserGroups);

        if (!groups.IsLoaded)
        {
            groups.Load();
        }
于 2017-08-17T21:46:32.460 回答
0

经过一些测试,我知道当你使用 load()方法时,它只会在之前没有加载的情况下从数据库中加载。

在这种情况下,您总是可以按需加载属性,如果它在它不会再次加载之前已经加载。

于 2017-08-21T14:56:43.820 回答