2012-02-17 2 views
7

私は、Labelという名前のカラムとAuctionIdというカラムを持つTagというテーブルを持っています。私も検索用語である文字列の配列を持っています。 EntityコードにLinqを記述して、ラベルが検索条件の1つに一致するAuctionIdの明確なリストを作成したいと思います。これは擬似コードです:Entity Framework - distinct inを選択してください

return a list of unique AuctionIds where Label is in searchTerms 

これはどのようにすることができますか?

答えて

15

リストにContains()を使用できます。

明確にするため、ラムダ表記を使用
List<String> AuctionIDs = (from tagItem in Tags 
          where searchItems.Contains(tagItem.Label) 
          select tagItem.AutionID).Distinct().ToList(); 
5

次のように、これは順番に多くの機能を破壊する:

IEnumerable<Int32> DistinctIds = TagTable.Where(x => searchTerms.Contains(x.Label)).Select(x => x.AuctionId).Distinct() 

ラムダ構文に行き過ぎがなければ、ここでの主要な機能は以下のとおりです。

.Where(X => searchTerms.Contains(x.Label)) - これはのSearchTermsコレクションは、その行

.Select(X => x.Auのラベル値を含む行のみを選択しますctionId) - )のみ整数値ではなく、完全な記録

.Distinctを(AutionIdアウト返す - これは

を助け

希望タインにその言葉通りません

関連する問題