ИЗМЕНИТЬ

Цените все вклады, ребята. Мнения очень приветствовались, я думаю, что на этом этапе мы пойдем с реализацией L2S и просто свернем / инкапсулируем наш DAL таким образом, чтобы, если нам нужно будет перейти на EF в будущем, это не будет слишком безболезненно. Операция.

Поскольку это было довольно субъективно, баллы достаются плакату, набравшему наибольшее количество голосов.

ORIG

Я пытался не отставать от всего Entity Framework Vs. Тема Linq2SQL, и уже есть некоторые вопросы по SO, например.

Entity Framework против. Linq в Sql

Мне интересно (мнения приветствуются), если бы вы начинали новый крупный проект, использовали бы вы Linq2SQL для своего уровня доступа к данным.

Чтобы дать некоторый контекст, мы .NET C # House, DB - это SQL Server 2000, но мы, возможно, перенесем это на SQL 2005 в конце этого года. И из нашей небольшой команды разработчиков я единственный, кто хоть раз имел опыт работы с C # 3.0 / .NET 3.5. Все остальные в команде застряли в области 1.1 / 2.0 в течение последних 3 лет, используя вручную вырезанный код ADO.NET и SqlHelper для уровня доступа к данным.

Думаю, меня больше всего беспокоит то, что мы начнем этот новый проект с чего-то более продвинутого / удобного / более быстрого для разработки (например, L2S), но в конечном итоге он уже устарел.

Если нам удастся поймать удар, отложить проект и исследовать, используя Entity Framework в VS2008.

Приветствую вас за любой вклад, ребята.

3
Eoin Campbell 2 Июн 2009 в 17:19

6 ответов

Лучший ответ

Хотя Microsoft продолжает поддерживать Linq, я подозреваю, что есть большая вероятность, что Entity Framework превзойдет ее, но они пока не хотят вызывать панику и надеются, что Entity Framework окажется более достойной на примере.

Новые функции в EF 4.0 очень привлекательны, мягко говоря, и большинство дебатов велось вокруг L2S против EF по сравнению с EF 3.5 SP1. EF 4.0 имеет POCO, Persistence Ignorance, Lazy Loading, шаблоны T4, поддержку N-уровня и многое другое.

Лично я бы поддержал EF 4.0, но он все еще находится в стадии бета-тестирования и не будет RTM до конца этого года, так что это действительно зависит от вашего графика. Тем не менее, переход с Linq на SQL проще, чем с nHiberante или какой-либо другой технологии, поэтому, если вам нужно начать работу завтра, либо воспользуйтесь шансом с Beta 1 EF 4.0, либо перейдите с Linq на SQL.

Beta 1 до сих пор получает хорошие отзывы, и, использовав EFPocoAdapter (предшественник Beta 1), я счастлив порекомендовать его.

5
aleemb 2 Июн 2009 в 13:33

Я считаю, что в среднесрочной перспективе Linq никуда не денется. У него более короткая кривая обучения, чем у EF (или, по крайней мере, у меня), поэтому я пошел по этому пути.

1
Lazarus 2 Июн 2009 в 13:24

Я бы сразу перешел в Entity Framework (EF) с LINQ to Entities. MS уже объявила, что EF - это путь вперед для будущей работы с базами данных, и это технология, используемая для всех их новых продуктов. Поскольку большинство ваших разработчиков не использовали LINQ, потребуется время для обучения, но код придет естественным образом, как только вы это пройдете.

EF более объектно-ориентирован, поэтому он отличается от LINQ to SQL. Например, в EF вы выражаете отношения с объектами, а LINQ to SQL позволяет вам указывать индексы внешнего ключа. Следующие версии будут еще проще в использовании. Возможно, вам будет полезно подписаться на блог группы ADO.NET.

Джо

0
Joe MayoJoe Mayo 2 Июн 2009 в 13:37

Я бы выбрал EF в .Net 4.0. Я не только слышал, что L2S находится в режиме обслуживания, но и в новой версии EF был значительно улучшен. Для меня самое важное - это это.

0
treehouse 2 Июн 2009 в 13:38

LINQ2SQL был создан командой C # как способ ORM SQL-структуры для классов и запросов к ним на C #. EF разработан командой ADO.NET DB, поэтому он НАМНОГО больше ориентирован на сторону DB, чем на сторону программиста. Поскольку ADO.NET - это платформа БД Microsoft, они, конечно, будут поддерживать ее больше, чем LINQ2SQL, но это не значит, что они не будут разрабатываться параллельно.

Вот ссылка на страницу с параллельным сравнением LINQ2SQL и EF. В этом нет всех пунктов, но, по крайней мере, многих важных.

0
Tacoman667 2 Июн 2009 в 13:42

EF нужно еще немного развиваться. Некоторые вещи все еще отсутствуют, например, неявная отложенная загрузка, ориентация на базу данных, а не на модель домена и т. Д. Подробнее о вотуме недоверия: http://blogs.msdn.com/timmall/archive/2008/06/24/vote-of-no-confidence .aspx

0
Th3Fix3rTh3Fix3r 2 Июн 2009 в 14:08