LINQ to SQL против объектов Ado.net - PullRequest
0 голосов
/ 29 января 2010

Если я использую SQL Server в качестве службы базы данных, есть ли веская причина взглянуть на LINQ to Entities через Linq to SQL?

Ответы [ 3 ]

2 голосов
/ 29 января 2010

Linq to SQL больше не разрабатывается активно - они концентрируют свои ресурсы на Entity Framework. Кроме того, EF гораздо надежнее и допускает ряд более сложных сценариев, которые были упущены в Linq и Sql.

Пока вы исследуете ORM, я бы серьезно посмотрел на NHibernate. Он существует дольше, чем любое из предложений Microsoft, и гораздо более универсален.

1 голос
/ 29 января 2010

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

EF позволяет выполнять намного более сложные сопоставления.

В долгосрочной перспективе Microsoft подталкивает всех к EF, однако EF более сложен в использовании. До выпуска .net 4 очень сложно разрабатывать тест-драйв с EF.

Если вы собираетесь скрыть весь доступ к данным за набором интерфейсов и самостоятельно создавать объекты домена на основе строк, которые вы получаете из базы данных, то Linq to SQL является хорошим вариантом в краткосрочной перспективе. Но вы можете быть вынуждены перейти на EF в долгосрочной перспективе.

Если вы хотите отобразить ваши доменные объекты в базу данных, используя ORM, тогда EF - лучший объект, но также следует учитывать nhibernate

Если вы вернетесь через несколько лет, ответом на ваш вопрос будет EF, однако в настоящее время он не совсем ясен ...

0 голосов
/ 29 января 2010

Существует множество убедительных причин выбрать Entity Framework вместо LinqToSql, но вам может понадобиться только одна:

Microsoft очень предпочла бы, чтобы вы использовали Entity Framework. Microsoft оставляет большую часть своих ресурсов для разработки ORM за EF. Это их будущая дорога.

К сожалению, EF 3.5 был значительным шагом назад по сравнению с LinqToSql, поэтому Microsoft действительно подтолкнула многих людей, которые хотели использовать EF, к LinqToSql. В EF 4.0 EF не полностью эквивалентен LinqToSql, но гораздо ближе.

EF 4.0 предлагает множество функций, которые LinqToSql в настоящее время не поддерживает и, вероятно, никогда не поддержит.

Держитесь подальше от EF 3.5. Если вы хотите ORM для .NET 3.5, используйте NHibernate. Для .NET 4.0 выберите между NHibernate и Entity Framework. На самом деле нет хорошей причины использовать LinqToSql с .NET 4.0.

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