&&与实体框架查询中的条件之间的区别

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)
  • code1code2有什么区别????

两个查询都返回相同的值.但我不知道这些差异.请向我解释,哪一个更好.为什么?

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查询结构都没有区别.