【发布时间】:2018-02-20 22:22:08
【问题描述】:
我的应用程序中当前的 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.Where(e => e.IsEnabled).ToList()足够快?这应该在任何对象物化之前在数据库上运行。 -
无法使用急切加载(Include),因为它不支持过滤,Include总是加载整个集合
标签: c# entity-framework