Linq-to-Entities / Linq-to-SQL, является ли один метод опроса данных более эффективным? - PullRequest
4 голосов
/ 30 ноября 2010

Отличаются ли следующие два примера, и если да, то какой из них эффективнее?

var user = (from u in db.Users where u.Id == userId select u).Single();

и

var user = db.Users.Single(p => p.Id == userId);

Ответы [ 3 ]

4 голосов
/ 30 ноября 2010

Они функционально эквивалентны. Могут быть небольшие различия в том, как они реализованы в различных провайдерах LINQ, но я ожидаю, что производительность будет практически одинаковой. Например, поставщик LINQ to SQL создает одинаковый SQL для обоих запросов:

SELECT [t0].[Id], [t0].[Name]
FROM [dbo].[User] AS [t0]
WHERE [t0].[Id] = @p0

Я ожидаю, что то же самое относится и к Entity Framework.

Если бы мне пришлось выбирать одну, я бы выбрал вторую версию, потому что она более краткая, без потери ясности. На самом деле, я бы сказал, что это более ясно - меньше шума от ключевых слов, поэтому бизнес-логика выделяется больше.

2 голосов
/ 30 ноября 2010

Они оба будут одинаковыми (с точки зрения SQL и эффективности).

1 голос
/ 30 ноября 2010

Они одинаковы.Компилятор должен выдавать один и тот же результат для обоих синтаксисов LINQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...