Linq-to-SQL или Linq-to-Entities с ASP.NET 3.5 и SQL Server 2005 - PullRequest
0 голосов
/ 27 сентября 2010

Я начинаю новый проект с использованием C # и ASP.NET 3.5 с SQL Server 2005, и я пытаюсь решить, какой ORM лучше всего использовать между LinqToSQL, LinqToEntities или NHibernate.

В идеале я хотел бы использовать предпочтительный опыт Microsoft; но мне нужно использовать решение, которое будет обеспечивать производительность, сопоставимую с использованием хранимых процедур без затрат на обслуживание, и будет легко развертывать обновления для веб-приложения и базы данных, поскольку мы находимся в среде Enterprise, а база данных контролируется другой группой.

Мне очень нравится простота использования, которую предоставляет LinqToSQL, и я склоняюсь к любому решению Linq поверх NHibernate.

Заранее спасибо за все рекомендации!

Jason

Ответы [ 3 ]

2 голосов
/ 27 сентября 2010

Если вы ищете «предпочтительный передовой опыт Microsoft», то вы хотите использовать Entity Framework (Linq-to-Entites).Microsoft говорит, что именно на этом они сосредоточивают свои усилия в отношении ORM.LINQ to SQL (я не думаю) активно развивается, за исключением исправлений, связанных с обслуживанием и безопасностью.

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

NHibernate также является очень хорошим решением, и у него есть поставщики LINQ, так что вы можете захотеть исследовать это тоже (если только по какой-то другой причине, кромехорошо проинформирован).Но мне нужно придерживаться «официальных» решений Microsoft.

0 голосов
/ 27 сентября 2010

Я перепробовал все 3 ORM NHibernate, LINQ to SQL и Entity Framework 4. Я написал в блоге о своем опыте в http://nileshgule.blogspot.com/2010/09/entity-framework-learning-series.html.

Я думаю, что NHibernate имеет много продвинутых функций, но много раз страдает от типичной проблемы с открытым исходным кодом. В ней отсутствует хорошая документация, и для того, чтобы простые вещи работали за вас, может потребоваться несколько дней. LINQ to SQL был Microsoft первым в мире ORM. В будущем вполне очевидно, что они собираются отказаться от технологии LINQ to SQL, специфичной для SQL-сервера. Следовательно, выбор Entity Framework 4 будет хорошим вариантом. Я кратко изложил некоторые различия между LINQ to SQL и Entity Framework 4 в моем блоге http://nileshgule.blogspot.com/2010/09/entity-framework-part-2-comparison.html

Вы также можете сослаться на очень хорошую серию видео Джули Ларман, которая доступна по адресу http://msdn.microsoft.com/en-us/data/ff191186.aspx

0 голосов
/ 27 сентября 2010

Я думаю, что Entity Framework - это рекомендуемое MS решение. У NHibernate есть кривая обучения, которую вам необходимо пройти, но, вероятно, наиболее многофункциональный ORM для .NET. EF, однако, очень прост, перетащите ваши объекты БД и взлетите, у вас есть классы доступа к данным для работы!

...