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()
方法时,它只会在之前没有加载的时候从数据库加载。
在这种情况下,您始终可以按需加载属性,如果它之前已经加载过,则不会再次加载。
一旦延迟加载尚未在 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()
方法时,它只会在之前没有加载的时候从数据库加载。
在这种情况下,您始终可以按需加载属性,如果它之前已经加载过,则不会再次加载。