Linq To SQL или Entity Framework хорошо интегрируются с SQL Server 2005.
Спецификация SQL Server 2008 обещает еще лучшую интеграцию - но я не вижу этого.
Какие примеры того, что вы можете сделать с помощью Linq при общении с сервером 2008 года, чего нельзя делать при общении с SQL Server 2005?
он имеет полную поддержку новых типов данных. лол. кроме того, что вы получили меня, кроме возможностей оптимизированных запросов (таких как команда слияния и т. д.).
Я предполагаю, что большая часть этого должна делать на сервере в любом случае. Вероятно, они оптимизировали выполнение запроса, что касается различий, которые я не знаю, за исключением новых типов.
Существует проблема разбивки страниц по объединенному набору, которая неверно интерпретирует SQL 2005.
var orders = (
from c in Customers
from o in c.Orders
select new {c, o}
).Skip(10).Take(10).ToList();
LINQ генерирует ROW_Number для объединенного набора. SQL2005 генерирует плохой план из этого кода. Вот ссылка на обсуждение .
Редактирование № 2: Я хотел бы уточнить, что я не знаю, что SQL2008 решает эту проблему. Я просто надеюсь.
Эта маркетинговая ссылка утверждает
«Напишите код доступа к данным непосредственно к базе данных Microsoft SQL Server, используя LINQ to SQL».
Что в принципе не соответствует действительности.
Linq To SQL - это понимание запросов, преобразованное в деревья выражений, переведенные в SQL, оптимизированные оптимизатором запросов и затем запущенные для базы данных SQL Server. "напрямую" фе.
Если LINQ не раскрывает новый оператор MERGE, нет.
Существует небольшая эффективная разница в двигателях, особенно с точки зрения ORM / клиента