EntityFramework の結果セットを永久に制限する方法を知っている人はいますか? このConditional Mappingのようなものについて話しています。これはまさに私が達成したいことですが、1 つの例外があります。これをプログラムで実行したいのです。これは、コンテキストの作成時にのみ条件値が EF に渡されるためです。また、この列がマッピングから消えないようにしたくありません。
私はEF2.0とリフレクションでこれを達成する方法を知っています。CreateQuery()
メソッドを使用して独自のObjectQuery
. CreateQuery()
追加の条件を使用して独自の ESQL クエリを挿入できますWHERE TABLE.ClientID == value
。
EF40の問題点は、これ以上ないということObjectQuery
だけObjectSet
で、CreateQuery()
使用されていません。独自の ESQL クエリを挿入する方法がわかりません。
結果セットを制限したい理由は、クライアント データを互いに分離したいからです。.Where(x => x.ClientID == 5)
この分離は、プログラマーが個々のクエリに条件を追加する必要がないように、コンテキスト内で自動的に行う必要があります。
私のアプローチは完全に悪いのかもしれませんが、他に方法がありません。