Difference between .Where(filter expression).FirstOrDefault() and .FirstOrDefault(filter expression)

jst*_*rdo 2 c# entity-framework

in Entity Framework, what is the difference in doing:

db.Table.Where(filter).FirstOrDefault()
Run Code Online (Sandbox Code Playgroud)

or

db.Table.FirstOrDefault(filter)
Run Code Online (Sandbox Code Playgroud)

我想第一个先应用过滤器,然后取第一个记录.第二个从表中获取所有记录,然后应用过滤器,效率更低.如果这是正确的或两者都相同,你能否确认我?

最好的祝福

Jus*_*ner 7

空无一人.它们是等价的.

但是,一般情况下,您应该将链接保持在最低限度.因此,第二个被认为是"正确的".

  • @ n8wrl过滤器在两种情况下都被推送到DB,或两者都没有,这取决于过滤器是否可以完全翻译. (2认同)