Code 1
I have using two where condition in my query
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.
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
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.