c# – 基于特定属性的实体框架急切加载
发布时间:2020-12-15 23:30:54 所属栏目:百科 来源:网络整理
导读:我的应用程序中当前的EF设置是延迟加载,这在很大程度上是很好的.但是,我迷失了如何根据其IsEnabled位属性加载相关实体列表的工作. 在这个例子中,我只是返回一个实体列表. return Context.Entities.ToList() 假设Entities对象包含一个ChildEntities列表,如下
我的应用程序中当前的EF设置是延迟加载,这在很大程度上是很好的.但是,我迷失了如何根据其IsEnabled位属性加载相关实体列表的工作.
在这个例子中,我只是返回一个实体列表. return Context.Entities.ToList() 假设Entities对象包含一个ChildEntities列表,如下所示: public class Entities { private string EntityName; private List<ChildEntities> ChildEntities; } public class ChildEntites { private string ChildEntityName; private bool IsEnabled; } 我想只想在加载实体列表时根据其IsEnabled标志取出ChildEntities. 解决方法
使用投影
var entities = context.Entities .Select(x => new {x,x.ChildEntities.Where(y => y.IsEnabled)) .ToList() // resolve from database before selecting the main entity .Select(x => x.x); 使用第三方库 EF Query IncludeFilter允许您轻松过滤相关实体 var entities = context.Entities.IncludeFilter(x => x.ChildEntities.Where(y => y.IsEnabled)) .ToList(); 您可以找到文档here 免责声明:我是EF+项目的所有者. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |