小编Gir*_*hel的帖子

表现:.Join vs .Contains - Linq to Entities

我使用Linq实体来查询数据库以获取int列表以供进一步处理.我有两种方法可以获得如下列表:

首先是:

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();
Run Code Online (Sandbox Code Playgroud)

第二是:

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();
Run Code Online (Sandbox Code Playgroud)

现在我的问题是上面哪种方法更好的表现?如果第一个列表即lstBizIds的大小增加,它是否也会影响性能?如果性能降低,建议我实施其他方法.

c# sql-server lambda linq-to-entities entity-framework

8
推荐指数
2
解决办法
4718
查看次数