Linq2SQL для нового проекта - PullRequest
3 голосов
/ 02 июня 2009

EDIT

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

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

ORIG

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

Entity Framework Vs. Linq To Sql

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

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

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

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

Приветствия для любых парней ввода.

Ответы [ 7 ]

5 голосов
/ 02 июня 2009

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

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

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

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

1 голос
/ 02 июня 2009

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

0 голосов
/ 02 июня 2009

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

0 голосов
/ 02 июня 2009

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

Если вы начнете с новой системы, среда Entity будет моим личным выбором. Мне нравится модель Entity, потому что она облегчает работу с транзакциями, а также облегчает работу с отношениями между таблицами. Для проекта, над которым я работаю, я решил использовать модель Entity в качестве слоя базы данных и строю все остальные функциональные возможности поверх этого. Связываясь с соответствующим событием, я могу отслеживать все изменения, вставки и удаления и, таким образом, иметь единую точку входа, с которой я могу начать свой журнал. Модель сущностей также позволила мне настроить простой веб-сайт (используя динамическую логику сайта данных), который теперь используется для ввода данных, пока у нас не останется больше времени для создания лучшего решения. (Поскольку на данный момент все, что нам нужно, это функциональность ввода данных.)

Однако, в начале, Entity Framework немного сложен в использовании, и вы можете в конечном итоге ударить по голове несколько раз из-за разочарования. Но если ты не сдашься, эта техника будет весьма полезным ...

0 голосов
/ 02 июня 2009

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

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

0 голосов
/ 02 июня 2009

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

0 голосов
/ 02 июня 2009

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

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

Джо

...