Jam*_*ris 11 c# code-first entity-framework-4
基本上,我想使用软删除,但导航属性不显示软删除记录.有没有办法拦截实体框架中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;}
}
Run Code Online (Sandbox Code Playgroud)
我可以轻松地将标准插入到我的存储库中,这样它就不会返回IsDeleted == true的任何产品.
但是,我无法看到如何在其导航属性中具有"软删除"的其他对象中完成此操作.
IE如果我访问myCategory.Products(其中myCategory是一个类别),它不应该显示IsDeleted == true的任何产品
我可以使用Category的附加属性来解决此问题
public ICollection<Product> CurrentProducts
{
get
{
return this.Products.Where(p=>!p.IsDeleted);
}
}
Run Code Online (Sandbox Code Playgroud)
但这不是我正在寻找的优雅解决方案.有没有办法将标准"附加"到导航属性或任何更好的解决方案来处理这个问题?
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |