Code 1
I have using two where condition in my query
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId).Where(p=>p.Name==Name)
.SingleOrDefault();
code 2
I have using && condition without using two where condition
dbContext.Projects.Where(p=>p.ProjectId!=ProjectId &&
p.Name==Name).SingleOrDefault();
The both queries are return same value. but i don't know the differences. Please explain to me, which one is better. and why?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With