c# - Linq-to-Entities/Linq-to-SQL,哪种数据轮询方式更高效?

标签 c# linq linq-to-sql linq-to-entities

下面两个例子是否不同,如果不同,哪个更有效率?

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/

相关文章:

c# - 带对象的全局静态类

linq - NHibernate linq 提供者 datediff

LINQ:结果的类型是什么?

c# - 按一个字段对 .Net 中的列表进行排序,然后按另一个字段排序

c# - 填充字典后,我的 SQL 连接是否会保持打开状态

C# LINQ 错误帮助

c# - 如何忽略linq to sql中违反主键约束

c# - C#测试项目和C#类库项目的区别

c# - 为什么我的线程安全字典实现会产生数据竞争?

c# - Ctrl+单击导航到几行之外的定义