3

私は、linq のエンティティ コレクションに対して複数の "where" フィルターを実行する良い方法を探していました。eBay のように、サイドでの検索にフィルターを使用するサイトはたくさんあります。

使用される手法は、「ドリルダウン」フィルターと呼ばれます。現在、Linq-to-Entities を使用する 3 層モデルでこの手法を実装する正しい方法を見つけようとしています。

この手法は、以前に使用された受信エンティティ コレクションを使用し、何らかのフィルターで絞り込みますが、フィルターの同じ "カテゴリ" 内でも適用および削除できるフィルターが複数あります。

誰かがチュートリアルへの正しいリンク、またはこれを適切な方法で使用する方法を見つけてくれることを願っています.

4

1 に答える 1

0

私の経験では、サイドの各「フィルター」はデータベース内のフィールドにマップされます。これにより、フィルターを簡単に実行できます。

var result = db.Table
                 .Where(t => t.Name.Contains(ddlName.Text))
                 .Where(t => t.Attribute1.Contains(Attribute1.Text));
                 .Where(t => t.Attribute2.Contains(Attribute2.Text));

明らかに、意味のある場所で置き換えることができます.Equals()。私はこれをいくつかの Web アプリケーションで使用して大きな成功を収めました。必要なフィルターがデータベースのフィールドに直接マップされない場合、これは少し厄介になりますが、同様のアプローチを取ることができます。

于 2011-05-20T22:06:53.850 に答える