1
同じデータベーステーブルに対して2つの異なるビューがあり、両方のビューに対して同じクエリを使用したいと思います。Entity Frameworkの異なるDbSetsに対して同じクエリを使用する
私は今、基本的にクエリのコピーを持っている醜い解決策に従っています。
DbSet<uvw_MyView1> view1 = entities.uvw_MyView1;
DbSet<uvw_MyView2> view2 = entities.uvw_MyView2;
if(doQueryOnView1)
{
// huge query
view1.Where(jada jada)
}
else
{
// huge query copied here with exception of different DbSet
view2.Where(jada jada)
}
より洗練されたソリューションです。基本的には、2つのDbSetに同じクエリ部分を持たせたいのですが、それは全く同じですが、異なる行を返します。何か案は?
素晴らしい!これらのインターフェイス定義を追加する最も簡単な方法は、これらのビュー(DbSet)の部分クラスを作成することです。これを直ちに試してみます。 – Tx3
スムーズに動作します。私がしなければならなかったのは、メソッドシグネチャを変更することだけでした。 "public static IQueryable YourHugeQueryMethod (DbContext context、...)ここでT:class、IView、new()"クラス制限の前にインタフェースを持つことによってエラーが発生しました。ありがとう! –
Tx3
ありがとうございます、サンプルを更新します。 –