Ram*_*ran 7 c# linq performance entity-framework if-statement
代码1
我在查询中使用了两个where where条件
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId).Where(p=>p.Name==Name)
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
代码2
我使用&&条件而不使用两个where条件
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId &&
p.Name==Name).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
两个查询都返回相同的值.但我不知道这些差异.请向我解释,哪一个更好.为什么?
Mic*_*ger 11
如果您打开查询,LinqPad您将看到两个查询
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId).Where(p=>p.Name==Name)
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId && p.Name==Name);
Run Code Online (Sandbox Code Playgroud)
将导致
SELECT [...]
FROM [...]
WHERE p.ProjectId <> someId AND p.Name = 'something'
Run Code Online (Sandbox Code Playgroud)
性能和SQL查询结构都没有区别.
| 归档时间: |
|
| 查看次数: |
8707 次 |
| 最近记录: |