Linq to SQL для нового проекта - PullRequest
       48

Linq to SQL для нового проекта

2 голосов
/ 25 августа 2009

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

У меня есть такое ощущение, что Entity Framework более раздутый и излишне сложный, что объясняет одну из причин, по которой я думал о переходе с LINQ на SQL ... но, как я сказал, это может быть только восприятие на моей стороне Я не так уж много использовал Entity Framework.

Итак, что бы люди посоветовали использовать для запуска нового проекта сегодня (обратите внимание, что это приложение будет в течение многих лет)?

Приветствие Энтони

EDIT: Мы являемся магазином SQL Server, поэтому нам не требуется независимость от поставщика базы данных.

Кроме того, является ли общепризнанным лучшим способом абстрагирования доступа к данным с использованием шаблона репозитория, который работает с объектами моего домена?

Ответы [ 6 ]

3 голосов
/ 25 августа 2009

LINQ to SQL - это быстрое развитие и простота. Если ваша модель данных сложна или может стать таковой, вам будет лучше использовать более надежную среду.

При этом более важным, чем ваш инструмент доступа к данным, является то, насколько хорошо вы абстрагируете его от остального кода. Если все сделано правильно, вы сможете начать с LINQ to SQL и переключаться при его перерастании (или когда выходит EF 2 4).

2 голосов
/ 25 августа 2009

Обратите внимание, что EF 1 далек от завершения. В нем отсутствуют всевозможные функции, которые вы найдете в LINQ to SQL, одна из наиболее важных из них - фактические свойства внешнего ключа (можете ли вы представить, что их нет в EF 1?)

Кроме того, EF 4 будет в значительной степени иметь все функции LINQ TO SQL, и оба будут генерировать относительно сопоставимый (с точки зрения кода) внешний API, поэтому, если вы не программируете на очень LINQ to SQL API, это должно быть относительно легко чтобы потом перейти на EF4, «просто», заменив LINQ to SQL .dbml эквивалентом EF4.

1 голос
/ 25 августа 2009

Linq to SQL лучше всего работает в активной записи / одна таблица на классовую парадигму. Если вам нужно разделить ваш класс на несколько таблиц или поддерживать сложное наследование, тогда это может быть не лучшим выбором. Кроме того, Linq to SQL изначально не поддерживает отношения «многие ко многим» (есть обходные пути).

Если ни один из этих звуков не повлияет на вас, то Linq 2 SQL может быть хорошим выбором. Это отличная легкая стратегия доступа к данным.

Linq to SQL может быть очень хорошо использован для реализации шаблона хранилища с учетом вышеуказанных ограничений. Google покажет несколько жизнеспособных примеров репозитория Linq.

0 голосов
/ 30 сентября 2009
0 голосов
/ 29 августа 2009

Я написал довольно длинный пост в блоге о выборе .NET ORM:

.NET и ORM - Решения, решения

По сути, NHibernate - ваш лучший выбор. Если вы настаиваете на чем-то простом, например, LinqToSql, подумайте о SubSonic. Я не рекомендовал бы ни один из вариантов Microsoft: LinqToSql или EntityFramework.

Решение о том, использовать шаблон хранилища или нет, зависит от ваших потребностей.

0 голосов
/ 25 августа 2009

Вы взглянули на Subsonic - теперь в версии 3 это, по сути, DAL linq to sql, позволяющий получить полный linq to sql всей вашей базы данных менее чем за 5 минут. И он запускает шаблоны T4, поэтому, если вы хотите добавить к шаблонам, это ДЕЙСТВИТЕЛЬНО ПРОСТО

http://www.subsonicproject.com/

...