Entityフレームワークで、DbContextの初期化時にエンティティのデータセットをフィルタリングすることは可能ですか?クエリを使用するエンティティフレームワークDbContext
次の問題があります。 ERPシステムのデータベースから生産データを読みたいと思います。私たちのすべての部署は、データを1つのテーブルに保存します。テーブルには、データが属する部門のフィールドがあります。今私はただ一つの特定の部門のためのソフトウェアを開発しています。もちろん、私は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
1つは、最初の '.ToList()'を削除する必要があります。しかし、あなたは[EntityFramework.DynamicFilters](https://github.com/jcachat/EntityFramework.DynamicFilters)のようになると思います。 –