Sac*_*nth 7 c# linq-to-entities entity-framework
我有一个名为Tag的表,其中包含一个名为Label的列和一个名为AuctionId的列.我还有一个字符串数组,它们是搜索词.我想写一些Linq to Entities代码,它会给我一个不同的AuctionIds列表,其中Label匹配其中一个搜索词.这是这个伪代码:
return a list of unique AuctionIds where Label is in searchTerms
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
小智 15
您可以在列表中使用Contains().
List<String> AuctionIDs = (from tagItem in Tags
where searchItems.Contains(tagItem.Label)
select tagItem.AutionID).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
小智 5
为了清楚起见,使用Lambda表示法,按顺序分解为许多函数,如下所示:
IEnumerable<Int32> DistinctIds = TagTable.Where(x => searchTerms.Contains(x.Label)).Select( x => x.AuctionId).Distinct()
Run Code Online (Sandbox Code Playgroud)
不要过多地介绍Lambda语法,这里的主要功能是:
.Where(x => searchTerms.Contains(x.Label)) - 这将只选择searchTerms集合包含该行的Label值的行
.Select(x => x.AuctionId) - 只返回整数AutionId值而不是完整记录
.Distinct() - 正如它所说的那样
希望这可以帮助