我正在使用Linq to Sql。我有表名客户,我想获取一条记录。 我有以下两种选择:
1. datacontext.Customer.Where( a => a.CustId == 1).Single();
2. datacontext.Customer.Single(a => a.CustId == 1)
哪个选项比性能更好?为什么?
告诉内部人员使用这两个选项。
答案 0 :(得分:1)
从SQL查询的角度来看,1导致
exec sp_executesql N'SELECT [t0].[Id], [t0].[Naam] FROM [dbo].[Customers] AS [t0] WHERE [t0].[Id] = @p0',N'@p0 int',@p0=1
和2导致
exec sp_executesql N'SELECT [t0].[Id], [t0].[Naam] FROM [dbo].[Customers] AS [t0] WHERE [t0].[Id] = @p0',N'@p0 int',@p0=1
哪个完全一样。所以那里没有性能差异。我对LINQ to SQL查询构建器没有任何见解,所以从这个角度来看我不知道哪一个更快,但是我怀疑它是否有意义(我会说只有2个更好,因为它只是为你节省方法调用而且查询对象中的相应条目。)