所以我使用實體框架代碼優先(所以沒有的.edmx) 我有一個布爾的IsEnabled基地實體類做軟刪除的實體框架代碼優先軟刪除延遲加載
我使用存儲庫模式所以針對存儲庫的所有查詢都可以使用IsEnabled進行過濾。
但是,任何時候我使用存儲庫來獲取MyType這是IsEnabled,延遲加載MyType.Items可能意味着項目可能未啓用。
有沒有辦法,或許用EF Fluent來描述如何對錶格進行過濾?
更新:
如果我有一個Dbset
public class UnitOfWork : DbContext
{
private IDbSet<MyObj> _MyObj;
public IDbSet<MyObj> MyObjs
{
get { return _MyObj ?? (_MyObj = base.Set<MyObj>()); }
}
}
有什麼辦法,我可以告訴的DbContext過濾DbSet?
更新後的答案仍然是:不。當然,你可以添加一個屬性的上下文類像'IQueryable MyFilteredObjs {get {return MyObjs.Where(m => m.IsEnabled); }}。但我認爲這不是你想要的,它不適用於懶惰或急切的加載。 –
Slauma
2012-03-08 17:26:58