我有以下-
IEnumerable<int> vendorIds;
var vendors = (from v in _context.Vendors
where vendorIds.Any(v.VendorId));
但我觉得这样做不如将供应商加入列表那么有效,所以我想要这样的东西
var vendors = (from v in _context.Vendors
join vi in vendorIds on v.VendorId == vi);
然而,语法是无效的。我不太确定如何进行比较。如果你能帮助我,我将不胜感激。
第一种方法应该不会对性能产生任何影响。为了确认,您可以对两种方式进行基准测试。
在Linq查询语法中,我们需要使用equals
来连接:
var vendors = (from v in _context.Vendors
join vi in vendorIds on v.VendorId equals vi
select v);
但这可以用更简单的方式完成,如下所示:
var vendors = _context.Vendors.Where(v => vendorIds.Any(vid => vid == v.VendorId));