在我的項目中,我不使用物理刪除,我只對所有表使用邏輯「軟刪除」。如何避免在實體框架中重複相同
我用這個條款爲所有查詢:
.Where(row => row.IsDeleted == false)
我想辦法,以避免重複此where
子句中的所有查詢。
我有這樣的方法來獲取數據:
public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
,我這樣稱呼它:
_categories = _uow.Set<Category>();
我怎樣才能做到這一點?
第一理念:
添加一個基類,並把Deleted
列在從這個基類繼承的所有類。這是一個好方法嗎?
我使用UnitOfWork
和代碼優先。
難道你不覺得這會更「安全」顯式過濾你的記錄,而不是神奇的數據層_swallowing_你的一些數據嗎?特別是如果有多個人正在/將要處理此代碼。我想這將很難達到由此導致的意外行爲的底部。 – romeozor
我想如果我在'Service'層中的所有查詢中使用'where',它可能是一個我忘記的地方,它是一個系統的bug,並且在軟件工程中重複一個代碼並不好 –