Интеграция SQL Server 2008 и Linq 2005

Среда Linq To SQL или Entity прекрасно интегрируется с SQL Server 2005.

Спецификация SQL Server 2008 обещает еще лучшую интеграцию, но я этого не вижу.

Каковы некоторые примеры того, что вы можете сделать с помощью Linq при общении с сервером 2008 года, чего вы не можете сделать при общении с SQL Server 2005?


person Phil Bachmann    schedule 18.08.2008    source источник


Ответы (5)


Эта рекламная ссылка утверждает

«Напишите код доступа к данным непосредственно в базе данных Microsoft SQL Server, используя LINQ to SQL».

Что в принципе неверно.

Linq To SQL — это понимание запросов, переведенное в деревья выражений, переведенные в SQL, оптимизированные оптимизатором запросов, а затем запущенные в базе данных SQL Server. "напрямую" фе.

person Amy B    schedule 30.09.2008

Существует проблема разбиения на страницы объединенного набора, который 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 эту проблему. Я просто надеюсь.

person Amy B    schedule 30.09.2008
comment
Не могли бы вы уточнить, что вы подразумеваете под «плохим планом»? - person leppie; 30.09.2008

он имеет полную поддержку новых типов данных. ржу не могу. помимо этого вы меня поняли, кроме возможностей оптимизированных запросов (таких как команда слияния и т. д.).

person Darren Kopp    schedule 19.08.2008

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

person Nick Berardi    schedule 19.08.2008

Если LINQ не предоставляет новую инструкцию MERGE, нет.

Существует небольшая эффективная разница в двигателях, особенно с точки зрения ORM/клиента.

person gbn    schedule 06.09.2010