假设我有类似
的内容 var remoteData = query.Where(s => <conditions here>).ToArray();
并且数组中的每个对象都有一个名为Department
的导航属性。
是否有办法将单个查询中的所有Department
属性显式加载到SQL服务器。
执行此类操作会导致大量查询
remoteData.ForEach(rd =>
{
rd.DepartmentReference.Load();
});
我知道Include
,但这太慢了。我希望在过滤后加载所有内容。
答案 0 :(得分:1)
不,如果您想更快地获取数据,您应该在单独的查询中选择相关的实体,如下所示:
var deps = dbContext.DepartmentReference.Where(o=>...).ToDictionary(o=>o.DataID);
您可以在此处query
加入此查询,不要重复此条件。
然后设置值:
remoteData.ForEach(rd =>
{
rd.DepartmentReference = deps[rd.ID];
});