在初始化DbContext時,Entitiy框架可以過濾實體的數據集嗎?實體框架DbContext與查詢
我有以下問題: 我想從我們的ERP系統的數據庫中讀取生產數據。我們所有的部門都將他們的數據保存在一張表中,該表中有一個數據所屬部門的字段。現在我正在爲一個特定部門開發一款軟件。當然,我可以讀入DbSet的所有數據,然後查詢本部門只是數據集在我的應用程序代碼,就像這樣:
Dim test As New DB.ModelProd()
Dim cl As New List(Of DB.Charge)
cl = test.Charges.ToList().Where(Function(ch) ch.Company = 3 And ch.ChargeId IsNot Nothing).ToList()
'do something with cl
但因爲這是隻有一個部門,我不想要的應用程序讀取和觸摸其他我永遠不會使用的數據。另外我想從應用程序中隱藏這些細節,因爲它很容易出錯(在使用它之前忘記過濾數據等)。
那麼,解決這個問題的最好方法是什麼?
最好的問候, 羅納德
您可以將這些細節包裹在您的BL或DAL中。在那裏你可以重寫DbSets或者他們返回的IQueryables。 – DevilSuichiro
其中之一,你必須刪除第一個'.ToList()'。但我想你會喜歡[EntityFramework.DynamicFilters](https://github.com/jcachat/EntityFramework.DynamicFilters)。 –