Команда разработчиков, с которой я работаю, скоро перейдет на .NET 4.0, однако используемая нами библиотека классов доступа к данным все еще использует ADO.NET «classic», то есть SqlDataReader , DataTable и тому подобное. Между тем, похоже, что Microsoft и, вероятно, весь остальной мир продвигаются вперед с Entity Framework и WCF Data Services . В MSDN я не нашел ничего, что указывало бы на то, какая из технологий доступа к данным Microsoft рассматривает как лучшие.
Есть ли у Microsoft предпочтения? Какой доступ к данным в настоящее время использует большинство людей? Есть ли веские причины оставаться с ADO.NET classic и не переходить на Entity Framework?
c#
.net
database-development
Т. Вебстер
источник
источник
Ответы:
В моей фирме мы используем EF. Это хорошая ORM, подходящая для нашего небольшого проекта. На самом деле люди используют EF или NHibernate. Обе рамки хороши. EF имеет отличную поддержку MS, и вы можете найти отличные инструменты в комплекте с Visual Studio. NHibernate считается лучше, чем EF, но есть большая «кривая обучения», поэтому вы потратите больше времени на его принятие.
Я думаю, что если вы находитесь на Ado.Net "классический" попробуйте EF. Создайте простой проект и замените некоторые методы DAL. Проверьте, как это работает и как вы можете управлять / изменять код. Сравните это с простыми методами «SqlDataReader» и решите, что лучше. Помните, что для каждого технологического сдвига требуется некоторое время для внедрения, поэтому вам необходимо рассчитать, будет ли это изменение полезным для вашей компании в долгосрочной перспективе.
источник
Моя команда находит реальность перехода на EF немного болезненной. Дело не в том, что EF плох или бесполезен, а в том, что конвертация наших существующих уровней данных (довольно массивных) из строго типизированных наборов данных, происходящих из ADO.Net framework 2.0, в EF - это просто большая интенсивная работа, которая на самом деле не приносит нам что-нибудь. Из-за новых вещей мы все еще довольно разорваны, потому что у всех нас есть мнения и цели. Для наших проектов Silverlight мы ориентируемся исключительно на сервисы EF и RIA, но для веб-проектов (веб-форм и MVC 3) мы в основном используем Linq2Sql.
Мы находим меньше головной боли и ускоряем разработку с использованием Linq2Sql, но я знаю, что Microsoft продвигает повестку дня EF (особенно с услугами WCF и RIA). Linq2Sql никуда не денется, но все новые игрушки и интересные функции будут сосредоточены на EF. Я бы сказал, что если у вас есть выбор на раннем этапе, EF будет хорошим началом. Если вы уже в середине потока, я не знаю, что будет очень легко переключаться.
источник
Entity Framework является предпочтительным способом. LinqToSql будет поддерживаться и поддерживаться, но основное внимание при разработке уделяется Entity Framework. Выбор между ADO.NET Entity Framework и LINQ to SQL
источник