Это плохая идея, чтобы перейти на LINQ to SQL сейчас? - PullRequest
5 голосов
/ 03 октября 2009

До этого момента я использовал ADO.NET в пользу LINQ to SQL (или Entities). Я начинаю новый проект, который должен быть небольшим, по крайней мере, на первый взгляд, но я хотел бы, чтобы у меня было место для расширения.

Я чувствую, что сейчас хорошее время, чтобы попасть в LINQ. Я избегал этого довольно долго; однако меня беспокоит текущее направление LINQ to SQL. Я слышал, что в будущем LINQ to Entities станет предпочтительным доступом MS к данным. Я бы предпочел не входить в LINQ to Entities, потому что: 1.) Скорее всего, это более крутая кривая обучения, которую я не хочу прямо сейчас включать (уже занят изучением MVC) и 2.) Я слышал, что она не готова к прайм.

Меня беспокоит следующее: если я сейчас начну проект с LINQ to SQL, могу ли я легко обновить его до LINQ to Entities в дальнейшем?

Ответы [ 6 ]

11 голосов
/ 03 октября 2009

LINQ to Entities готов к прайм-тайму и не обязательно намного круче, чтобы учиться. Тем не менее, LINQ to SQL тоже подойдет, вы узнаете много нового, который будет полезен по мере продвижения вперед.

Короче, выбирайте все, что подходит проекту лучше всего. Если SQL Server есть и останется платформой БД, и если нет необходимости перераспределять таблицы или другие сложные приемы, LINQ to SQL поможет вам очень быстро. Это также очень эффективно.

4 голосов
/ 03 октября 2009

Если ваше приложение запускается в производство до выпуска .net 4.0 SP1, перейдите на L2S. Linq-to-SQL стабилен, он не исчезнет в ближайшее время и генерирует отличный SQL. EF v1 нет. Период. Посетите форум MSDN EF , если хотите узнать больше о детских болезнях EFv1.

Будет ли EFv2 соответствовать задаче, еще неизвестно; Я использовал только бета-версию 1, и в ней нет некоторых улучшений, которые, как говорят, в более поздних версиях.

Тема "L2S vs EF" уже освещалась много раз, посмотрите:
LINQ to SQL мертв или жив?

... и лично я думаю, что заявление Андерса Хейлсберга в Redmond Developer News проясняет это. « LINQ to SQL не мертва. Я могу заверить вас, он не мёртв. Ничто не исчезнет. Мы никогда этого не делали и никогда не будем, », - сказал он.

http://reddevnews.com/blogs/desmond-file/2008/12/digital-darwinism.aspx

0 голосов
/ 19 июня 2011

Я держался подальше от Microsoft ORM и очень рад, что у меня есть. Существует постоянный цикл ажиотажа -> принятие -> осознание слабых сторон и недостатков -> конец жизни, начать снова.

Не поймите меня неправильно, я большой поклонник .Net, но не Microsoft ORM. Есть лучшие решения там.

Я понимаю, что это просто мнение, но я предлагаю его за то, что оно стоит.

0 голосов
/ 05 октября 2009

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

Тем не менее, в долгосрочной перспективе вы должны учитывать, как долго будет действовать ваше приложение и сколько будет стоить «обновление».

0 голосов
/ 04 октября 2009

Люди, которые говорят, что у LinqToSql минимальная кривая обучения, не совсем честны с вами. ADO.NET имеет значительную кривую обучения. Любой ORM имеет значительную кривую обучения. После того, как вы использовали один ORM, не так уж сложно выбрать другой ORM. Как только вы построите свой собственный ORM (для удовольствия, не делайте этого по-настоящему), вы действительно поймете, что происходит.

Linq (я не говорю о LinqToSql) - отличная технология, и вы не можете использовать Linq с ADO.NET, вам нужно что-то вроде ORM.

По многим причинам (Linq - одна из самых сильных, а зрелость ORM - другая), сейчас самое время перейти от ADO.NET к ORM.

Из того, что я видел, "модернизация" проекта с одного ORM на другой (неважно, какие ORM) всегда трудна, если вы действительно не знаете, что делаете, и держите ORM как свободно связанную со всем еще как можно.

Я бы остерегался как LinqToSql, так и EntityFramework (он же LinqToEntities). Они оба испытывают недостаток во многих функциях, которые вам, вероятно, понадобятся в «реальном мире». Ни один из них не является зрелым или доказанным (как показывают разногласия, которые вы видели в ответах на этот вопрос).

В .NET-пространстве есть зрелые, проверенные ORM, и не сложно определить, какой из них доминирует сейчас.

0 голосов
/ 03 октября 2009

Microsoft сделала заявление о том, что срок действия LINQ to SQL истек, и больше не будет вносить в него существенных улучшений. Проверьте их официальное заявление с сахарной оболочкой здесь . Entity Framework займет свое место.

Вот статья MSDN о том, как перенести проект LINQ to SQL на Entity Framework.

...