我的.edmx文件上有一個名爲Client的實體。我需要運行幾個linq querys它,但在所有這些,我需要一個過濾器(讓說活動= 1)。在EF上使用默認篩選器的實體
我不想在我的所有查詢中都有一個where c.active == 1
,更有意義的是我的實體應用了默認過濾器。這是可以做到的嗎?
或者也許我可以有一個查詢作爲基地,而不是表的實體? (我在數據庫的第一種方法)
我知道另一種解決方案將創建一個數據庫的視圖和鏈接的實體視圖,但我不希望這一點。
我的.edmx文件上有一個名爲Client的實體。我需要運行幾個linq querys它,但在所有這些,我需要一個過濾器(讓說活動= 1)。在EF上使用默認篩選器的實體
我不想在我的所有查詢中都有一個where c.active == 1
,更有意義的是我的實體應用了默認過濾器。這是可以做到的嗎?
或者也許我可以有一個查詢作爲基地,而不是表的實體? (我在數據庫的第一種方法)
我知道另一種解決方案將創建一個數據庫的視圖和鏈接的實體視圖,但我不希望這一點。
您可以添加額外的方法到您生成的數據庫方面:
partial class DatabaseContext // same name as your generated context
{
IQueryable<Client> ActiveClients { get { return Clients.Where(c => c.active == 1); } }
}
而且用它在你的代碼。由於它是部分類的一部分(在除生成的上下文類之外的其他文件中定義),因此刷新模式時不會受到codegen工具的影響。
你想修改該實體嗎?你想訪問不活躍的客戶嗎? –
不,對於這個應用程序,就像非活動客戶端不存在 – Diego
[如何將實體框架應用全局過濾器?](http://stackoverflow.com/questions/2624597/how-to-apply-global- filter-on-entity-framework) –