我的应用程序中 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;
}
我只想在加载 Entities
列表时根据它们的 IsEnabled
标志取出 ChildEntities
。
最佳答案
您可以使用 Include()
方法加载所有子实体,然后仅选择那些已启用的子实体,例如
Context.Entities.Include("ChildEntites").Select(c => e.IsEnabled == true)
另一种方法是获取过滤器实体,然后运行查询,如图所示 in this post
var data = from e in Context.Entities
select new
{
Entities = e,
Childs = e.ChildEntites.Where(c => c.IsEnabled == true)
};
var Results = data.ToArray().Select(x => x.Entities);
关于c# - 基于特定属性的 Entity Framework 预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135938/