私は動的LINQおよび述語ビルダーを読んでいます。私は少し不明で、バックエンドロジスティクスのいくつかについてちょっと混乱しています。私は厄介なgroupwise-maxクエリを含む、自分のアプリケーションの1つに対してレポート/高度な検索オプションを提供しようとしています。動的LINQ - 動的、サーバー側Where句
私は簡単に結果をプログラムでフィルタリングすることができますが、パフォーマンス上の理由から、SQL Serverではwhere節が実行され、.netコードでは実行されません。どのソリューションが実際にSQLの述語を実行し、クライアント/ .NETの側を実行するのかは不明です。ここでは、LINQで何をしたいのかの例を示します。
from fbd in db.FooBarDatas
join max_fbd in
(from fbd in db.FooBarDatas
group fbd by new { fbd.FooID, fbd.BarID } into grp
select new { MaxFooBarDataID = grp.Max(fbd => fbd.FooBarDataID }
)
on fbd.FooBarDataID equals max_fbd.MaxFooBarDataID
select new
{
FooBarDataID = fbd.FooBarDataID,
NormalizedPropertyName1 = fbd.Column1,
NormalizedPropertyName2 = fbd.Column2,
NormalizedPropertyName3 = fbd.Column3,
etc...
}
これは私の基本的な質問です。私は、クエリから動的に取得したいデータの多くが外部テーブルから来ているため、それらをすべて直接的なプロパティとして参照させたいので、最終的に汎用リンクデータオブジェクトにすべてをスローします。
ここで、意味のあるレポートを生成するために、このクエリに「where」節条件を一括して追加する方法が必要です。 "where"節は、ユーザーが指定したパラメーターによって異なります。レコードセットはかなり大きいので、私はSQL側でフィルタリングを行う方法を探しています。
これを達成する方法の簡単な例は誰でも提供できますか?助けを前にありがとう。