下面两个例子是否不同,如果不同,哪个更有效率?
var user = (from u in db.Users where u.Id == userId select u).Single();
和
var user = db.Users.Single(p => p.Id == userId);
最佳答案
它们在功能上是等价的。它们在各种 LINQ 提供程序中的实现方式可能略有不同,但我希望性能几乎完全相同。例如,LINQ to SQL 提供程序为两个查询生成完全相同的 SQL:
SELECT [t0].[Id], [t0].[Name]
FROM [dbo].[User] AS [t0]
WHERE [t0].[Id] = @p0
我希望这同样适用于 Entity Framework 。
如果我必须选择一个,我会选择第二个版本,因为它更简洁且不失清晰度。事实上,我会说它更清晰 - 关键字噪音更少,因此业务逻辑更加突出。
关于c# - Linq-to-Entities/Linq-to-SQL,哪种数据轮询方式更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4308223/