LINQ to SQL не рекомендуется? - PullRequest
54 голосов
/ 15 июня 2010

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

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

Но я читаю новую книгу (C # 4.0 How-To Бена Уотсона) и в главе 21 (LINQ) он предполагает, что она «более или менее устарела Microsoft», и предлагает использовать LINQ to Entity Framework .

У меня вопрос к вам, является ли LINQ to SQL официально устаревшим или нет, и если официальные лица (Microsoft, Скотт Гу и т. Д.) Официально предлагают использовать LINQ to Entities вместо LINQ to SQL.

Ответы [ 6 ]

60 голосов
/ 15 июня 2010

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

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

12 голосов
/ 15 июня 2010

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

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

Те, кто говорят, что «L2S мертв», обычно ссылаются на тот факт, что L2S не получит слишком много (если таковые имеются) новых функций. Обновления Linq (например, обновления, упомянутые в поста Дамиена Гварда ), скорее всего, ограничиваются обновлениями производительности, удобства использования и стабильности. Конечно, некоторые разработчики могут утверждать, что это хорошо (вероятно, те же разработчики, которые немного недовольны новым динамическим типом 1009 *).

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

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

9 голосов
/ 14 июня 2012

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

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

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

8 голосов
/ 15 июня 2010

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

4 голосов
/ 15 июня 2010

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

0 голосов
/ 15 июня 2010

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

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