查询表达式连接上下文与原语列表



我有以下-

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));

最新更新