C# 使用SingleorDefault的Linq查询语法差异
这个问题可能不太相关。这更多的是出于好奇而非其他原因 在速度方面,Option1比Option2有什么真正的优势吗C# 使用SingleorDefault的Linq查询语法差异,c#,.net,linq,hibernate,C#,.net,Linq,Hibernate,这个问题可能不太相关。这更多的是出于好奇而非其他原因 在速度方面,Option1比Option2有什么真正的优势吗 Option1 var avariable = session.Query<Someclass>() .SingleOrDefault(x => x.something == someotherThing); Option 2 var avariable = session.Query<Someclass
Option1
var avariable = session.Query<Someclass>()
.SingleOrDefault(x => x.something == someotherThing);
Option 2
var avariable = session.Query<Someclass>()
.Where(x => x.something == someotherThing)
.SingleOrDefault();
选项1
var avariable=session.Query()
.SingleOrDefault(x=>x.something==something);
选择2
var avariable=session.Query()
.其中(x=>x.something==something)
.SingleOrDefault();
提前感谢选项1打字更快
(它们都应该创建相同的sql,因此会产生相同的性能,选项1只是更简洁而已)如果这是通过NHibernate数据库访问层提供程序运行的,则可能由它决定。我没有直接使用它,但如果它们都只是转换为一个HQL查询,那么我怀疑它们之间是否存在性能差异。说到性能,这是一本必读的书,感谢您的回答。大卫,我还没有试过。它只是经过一次重击之后才通过的。Chris,我也认为生成的HQL应该是相同的。史蒂夫,你说得对,我应该做个基准测试。