我有一个名为标签的表,名为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() - 正如其说,在齿
希望这有助于