Entity framework 核心,如何仅在之前未加载的情况下加载导航参数?

Entity framework core, How load navigational parameters only if its not loaded before?

一旦延迟加载尚未在 Entity Framework 核心上实现,我如何从 class 加载导航 属性,但前提是它在使用 [=] 之前未加载22=]核心。例如。这个class

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

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

如果之前加载了 Children,我将只能使用 myinstance.CountChildren() 计算 children,例如使用 eager loading or explicit loading

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

I would like to verify if the Children navigational property was loaded before. If not, then force it to load

更改跟踪器有此信息。 EG

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

        if (!groups.IsLoaded)
        {
            groups.Load();
        }

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

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