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


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

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

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

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

6   51   2010-06-15 01:16:45

6 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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