是否可以向Entity Framework对象上下文添加一种全局过滤器?比如拥有一个ObjectMaterialized,它可以返回一个指示器,指示是否在结果集中包含给定的对象。
答案 0 :(得分:2)
不,不可能。实体框架及其内置提供程序不支持全局筛选器。
您可以使用简单的包装器实现一些基本过滤:
public class MyContext : ObjectContext
{
private ObjectSet<MyEntity> myEntities;
public Expression<Func<MyEntity, bool>> GlobalMyEntityFilter { get; set; }
public IQueryable<MyEntity> MyEntities
{
get
{
if (GlobalMyEntityFilter != null)
{
return myEntities.Where(GlobalMyEntityFilter);
}
return myEntities;
}
}
}
答案 1 :(得分:1)
您是否尝试执行仅显示活跃客户的操作?如果是这样,您可以使用继承并创建ActiveCustomer类型并在映射中添加条件Status == "Active".
然后将您的Customer类型设置为抽象基类以防止直接实例化。然后,您可以查询您的模型Customers.OfType<ActiveCustomer>().