以下两个查询之间是否有任何性能差异?
CustomerProduct customerProduct = db.CustomerProducts.SingleOrDefault(p => object.Equals(p.Customer, this));
CustomerProduct customerProduct = (from p in db.CustomerProducts where object.Equals(p.Customer, this) select p).SingleOrDefault();
也许还有另一个,甚至更快的一个?
答案 0 :(得分:1)
在编译方面,它们应编译成相同的代码; Linq只是编译器将为您解释的语法糖。话虽如此,并非所有linq查询都将按照您期望的方式进行编译,无论您是否应始终使用ObjectQuery
强制转换+ ToTraceString
方法检查生成的sql。