基本上,我想使用软删除,但具有导航属性不显示软删除的记录。有什么方法可以拦截实体框架中POCO对象的导航属性查询吗?软删除,EF4中的导航属性CTP5 POCO
很简单的例子:
public class Product
{
public int Id { get; set;}
public string Name { get; set;}
public int? CategoryId { get; set;}
public virtual Category Category { get; set;}
public bool IsDeleted { get; set;}
}
public class Category
{
public int Id{ get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set;}
}
我可以轻松地插入标准到我的仓库,这样它不返回任何产品请将isDeleted地方真正==。
但是,我看不到如何为导航属性中具有“软删除”实体的其他对象完成此操作。
也就是说,如果我访问myCategory.Products(其中myCategory是一个类别)它不应该表现出任何产品请将isDeleted地方真正==
我可能会解决这个使用类别的一个附加属性
public ICollection<Product> CurrentProducts
{
get
{
return this.Products.Where(p=>!p.IsDeleted);
}
}
但这并不是我正在寻找的优雅解决方案。有没有办法将'标准'附加到导航属性或任何更好的解决方案如何处理?
啊现在我看到你的问题... :) – gingerbreadboy 2011-01-05 14:51:59
我会说你提出的解决方案是最好的。不知道为什么你不认为它是优雅的?对我来说似乎很干净简单。 – 2011-01-11 14:05:01
你有没有找到办法解决这个问题?我遇到了同样的情况,并想知道你采取了什么方法。 – muruge 2011-03-21 22:36:12