我有一個名爲標籤的表,名爲Label的列和名爲AuctionId的列。我也有一個搜索條件的字符串數組。我想寫一些Linq to Entities代碼,它會給我一個不同的AuctionIds列表,其中Label與其中一個搜索項匹配。這裏是這個僞代碼:實體框架 - 選擇截然不同
return a list of unique AuctionIds where Label is in searchTerms
這怎麼辦?
我有一個名爲標籤的表,名爲Label的列和名爲AuctionId的列。我也有一個搜索條件的字符串數組。我想寫一些Linq to Entities代碼,它會給我一個不同的AuctionIds列表,其中Label與其中一個搜索項匹配。這裏是這個僞代碼:實體框架 - 選擇截然不同
return a list of unique AuctionIds where Label is in searchTerms
這怎麼辦?
您可以使用列表上的Contains()。
List<String> AuctionIDs = (from tagItem in Tags
where searchItems.Contains(tagItem.Label)
select tagItem.AutionID).Distinct().ToList();
使用爲清楚起見LAMBDA符號,這種分解爲若干功能順序如下:
IEnumerable<Int32> DistinctIds = TagTable.Where(x => searchTerms.Contains(x.Label)).Select(x => x.AuctionId).Distinct()
沒有去太遠的lambda語法,這裏的主要特點是:
。凡(X => searchTerms.Contains(x.Label)) - 這將選擇出僅行其中searchTerms集合包含該行
。選擇(X => x.Au標籤值ctionId) - 返回了唯一的整數AutionId值,而不是完整的記錄
.Distinct() - 正如其說,在齒
希望這有助於