Difference between && and where condition in entity framework query

前端 未结 3 1383
暗喜
暗喜 2020-12-10 17:05

Difference between and condition and two where condition in entity framework query

Code 1

I have using two where condition in my query

相关标签:
3条回答
  • 2020-12-10 17:23

    If you open your query in LinqPad you will see that both queries

    dbContext.Projects.Where(p=>p.ProjectId!=ProjectId).Where(p=>p.Name==Name)
    
    dbContext.Projects.Where(p=>p.ProjectId!=ProjectId && p.Name==Name);
    

    will result both in

    SELECT [...]
    FROM [...]
    WHERE p.ProjectId <> someId AND p.Name = 'something'
    

    There is no difference neither in performance nor in SQL query structure.

    0 讨论(0)
  • 2020-12-10 17:26

    From the documentation

    Return value:

    An IEnumerable that contains elements from the input sequence that satisfy the condition.

    So the second where will only be applied to the records surviging the first where - which is identical to the && expression you built in code 2.

    See: https://msdn.microsoft.com/de-de/library/bb534803%28v=vs.110%29.aspx

    0 讨论(0)
  • 2020-12-10 17:27

    Both queries are same. But Query 2 will give you better performance, as && will help you in short-circuit. In the first query, first where will yield the result and that will be given to 2nd where clause and then it will evaluate result based on the input. Let me know if you need more info.

    0 讨论(0)
提交回复
热议问题