我有List<string> of ProductTypes
,例如Vegetables, Dairy, Meat
我从Asp.Net Core中的查询字符串中收到。
在数据库中,有一个Product表,其中包含ProductType列,该列在文本字段中包含每个产品的类型)
我想从Product数据库表中选择ProductTypes列表中收到的所有产品。我这样做了:
var Result = (from p in _context.Product
join t in ProductTypes on p.ProductType equals t select p).ToList();
我上面的努力有一个(不正确的)空结果,除非只传递了一个ProductType,在这种情况下它可以正常工作。
如果传递了多个ProductType,我如何才能完成正确的结果集?
答案 0 :(得分:2)
您可以使用Contains
代替联接:
var result =
from p in _context.Product
where ProductTypes.Contains(p.ProductType)
select p;
您很少需要LINQ中的连接,并且在您拥有内存列表和数据库表的特殊情况下,Contains
是可行的方法。