我正在使用Linq to Entities查询数据库以获取整数列表以进行进一步处理。我有两种获取列表的方法,如下:
第一种方法是:
List<int> lstBizIds = new List<int>() { 1, 2, 3, 4, 5 };
List<int> lstProjectIds = context.Projects.Where(x => lstBizIds.Contains(x.businessId)).Select(x => x.projectId).ToList();
其次是:
List<int> lstBizIds = new List<int>() { 1, 2, 3, 4, 5 };
List<int> lstProjectIds = context.Projects.Join(lstBizIds, p => p.businessId, u => u, (p, u) => p.projectId).ToList();
现在我的问题是,上述方法中哪一种性能更好?如果第一个列表lstBizIds增长,这是否会影响性能?如果有其他性能更优的实现方式,请给出建议。
Where
IN
和JOIN
操作时,不同的连接器/提供程序会以不同的方式转义字符。这在我使用Pomelo MySQL for EF Core时曾经困扰过我,但我认为任何提供程序都可能存在此问题。 - Collin Barrett