在 Entity Framework 中显式加载先前获取的对象列表中的所有导航属性?
Explicitly loading all navigation properties in a list of previously fetched objects in Entity Framework?
假设我有类似的东西
var remoteData = query.Where(s => <conditions here>).ToArray();
并且数组中的每个对象都有一个名为 Department
的导航 属性。
有没有办法在单个查询中将所有 Department
属性显式加载到 SQL 服务器。
这样做会导致大量查询
remoteData.ForEach(rd =>
{
rd.DepartmentReference.Load();
});
我知道 Include
但这太慢了。我想在过滤发生后加载所有内容。
不,如果您想更快地获取数据,您应该 select 在单独的查询中关联实体,如下所示:
var deps = dbContext.DepartmentReference.Where(o=>...).ToDictionary(o=>o.DataID);
在这里你可以加入这个查询query
不重复条件。
然后设置值:
remoteData.ForEach(rd =>
{
rd.DepartmentReference = deps[rd.ID];
});
假设我有类似的东西
var remoteData = query.Where(s => <conditions here>).ToArray();
并且数组中的每个对象都有一个名为 Department
的导航 属性。
有没有办法在单个查询中将所有 Department
属性显式加载到 SQL 服务器。
这样做会导致大量查询
remoteData.ForEach(rd =>
{
rd.DepartmentReference.Load();
});
我知道 Include
但这太慢了。我想在过滤发生后加载所有内容。
不,如果您想更快地获取数据,您应该 select 在单独的查询中关联实体,如下所示:
var deps = dbContext.DepartmentReference.Where(o=>...).ToDictionary(o=>o.DataID);
在这里你可以加入这个查询query
不重复条件。
然后设置值:
remoteData.ForEach(rd =>
{
rd.DepartmentReference = deps[rd.ID];
});