Подтвердить что ты не робот

Является ли LINQ to SQL устаревшим?

Еще в конце 2008 года было много дискуссий о будущем LINQ to SQL. Многие предположили, что инвестиции Microsoft в Entity Framework в .NET 4.0 стали признаком того, что LINQ to SQL не имеет будущего. Я подумал, что подожду, прежде чем принимать собственное решение, поскольку люди не согласны.

Быстрая перемотка вперед 18 месяцев, и у меня есть поставщики, предоставляющие решения, которые полагаются на LINQ to SQL, и я лично дал ему попробовать и действительно наслаждался работой с ним. Я подумал, что это должно было остаться.

Но я читаю новую книгу (С# 4.0 How-To by Ben Watson) и в главе 21 (LINQ), он предлагает, чтобы она "была более или менее устарела Microsoft" и предлагает использовать LINQ to Entity Framework.

Мой вопрос вам в том, официально ли LINQ to SQL официально устарел и/или если авторитетные сущности (Microsoft, Scott Gu и т.д.) официально предлагают использовать LINQ to Entities вместо LINQ to SQL.

4b9b3361

Ответ 1

Для всех, кто "Linq-to-SQL мертв": сам Скотт Гатри ясно отметил в TechEd Europe, что Linq-to-SQL ПОЛНОСТЬЮ ПОДДЕРЖИВАЕТСЯ в.NET 4, а Damien Guard опубликовал сообщение в блоге о том, какие изменения и улучшения были сделаны. сделано для Linq-to-SQL в.NET 4.

По словам Марка Твена: "Сообщения о моей смерти сильно преувеличены"......

Ответ 2

Последнее, что я проверил, этот самый сайт использует (или используется для использования) Linq To SQL. Джоэл Спольский упоминает об этом в своем GoogleTechTalk: http://www.youtube.com/watch?v=NWHfY_lvKIQ.

Говоря о программном обеспечении, "мертвый" является образным модификатором (программное обеспечение не умирает в каком-либо буквальном, биологическом смысле), поэтому эти дебаты могут задерживаться до тех пор, пока вовлеченные стороны отказываются определять в каком-либо буквальном смысле, что это означает "Linq To Die". Или, LTD для краткости. Следовательно, на данный момент дискуссия LTD задерживается на протяжении двух лет. Все из-за небольшой языковой двусмысленности.

Те, кто говорят, что "L2S мертв", обычно ссылаются на то, что L2S не получит слишком много (если есть) новых функций. Обновления Linq (например, обновления, упомянутые в Damien Guard post), скорее всего, будут ограничены обновлениями производительности, удобства использования и стабильности. Конечно, некоторые разработчики могут фактически утверждать, что это хорошо (возможно, те же самые разработчики, которые немного рассердились на новый динамический тип).

Те, кто говорят, что "L2S не мертв", как правило, ссылаются на то, что L2S не собирается вообще сокращаться из .Net(по крайней мере, в ближайшее время). Подумайте: ADO. Он может потерять часть своей привлекательности среди практикующих разработчиков (и это может быть невысказанное желание этих хитрых людей в Microsoft), но это не значит, что вы не сможете использовать L2S, если хотите. Это просто означает, что Microsoft не пытается подделать массы с ней.

При запуске проекта, я действительно считаю, что у меня есть выбор между EF и L2S. Так как Bill Wagner указывает, там время и место для обоих.

Ответ 3

Я опаздываю на это обсуждение, но я хотел бы отметить, что еще в 2008 году ссылка на SQL Project Manager (Тим Маллалье) сделала это объявление в своем сообщении в блоге,

"Начиная с .NET 4.0, LINQ to Entities [а не LINQ to SQL] будет рекомендуемым решением для доступа к данным для LINQ к реляционным сценариям.

Я не нашел других более свежих объявлений об обратном.

Ответ 4

Нет, это не так. Команда все еще работает над ее улучшением.

Ответ 5

Обязательно посмотрите эту статью, размещенную на InfoQ.com - она действительно интересная. Его вывод: "[O] ver долгосрочные LINQ to SQL и LINQ to Entities будут объединены. Тем временем работа по разработке LINQ to SQL не закончится полностью".

Ответ 6

Я думаю, это неизбежно, что они сольются. EF действительно представляет собой реализацию уровня LINQ над объектами db на уровне предприятия. linq2sql был во всех смыслах доказательством концепции (и намного больше), которая фактически росла ногами, но подпитывала многие идеи, которые мы сейчас видим в EF. в конце дня уровень DAL (nhibernate, EF, l2s, subsonic и т.д.) должен быть довольно далеко вниз по цепочке, чтобы отрицать любые различия в коде BO клиента, который встраивает LINQ-сервис - с возможностью "горячей" замены будет конец игра через DI.

Ответ 7

Инструменты LINQ to SQL в Visual Studio

LINQ to SQL была первой технологией объектно-реляционного отображения выпущен Microsoft. Он хорошо работает в основных сценариях и продолжает для поддержки в Visual Studio, но он больше не находится под активным разработка. Используйте LINQ to SQL при обслуживании устаревшего приложения которые уже используют его, или в простых приложениях, которые используют SQL Server и не требуют отображения нескольких таблиц. В общем, новые приложения следует использовать Entity Framework, когда слой объектно-реляционного сопоставления требуется.