0

新しいプロジェクトでは、SQLServerでLinq-to-SQLをORMとして使用しています。私はこれまでLinq-to-SQLを使用したことがないので、私の質問は少しばかげている可能性があります。次のような述語でDB内のエンティティの検索を実行するメソッドが必要です。

public IEnumerable<T> Get<T>(Expression<Func<T, bool>> @where)

コードサンプルやこれを実装する方法のアイデアを見ることができるアドバイスを教えてください。

4

1 に答える 1

1

必要な場所(ここでは、originalListは列挙可能であり、特にコンテキストからのテーブルにすることができます):

var filteredList = originalList.Where(element => ShouldBeIncluded(element));

編集:

また

var filteredList =
    from element in originalList
    where ShouldBeIncluded(element)
    select element;

そして、ShouldBeIncludedがである場合、目を見張るようなFunc<T, bool>単純化された構文があります。

var filteredList = originalList.Where(ShouldBeIncluded);

編集2:また、完全な構文は次のとおりであることに注意してください。

var filteredList = originalList.Where<TTypeOfElement>(element => ShouldBeIncluded(element));

ただし、一般的な引数は、コンパイラがoriginalListの型から推測するため(IEnumerable<TTypeOfelement>)であると仮定して、省略できます。

于 2012-04-11T11:41:08.763 に答える