Наиболее распространенными методами, вероятно, являются:
Все они все еще используются и имеют разные преимущества и недостатки. Я думаю, что Microsoft в настоящее время пытается побудить людей использовать Entity Framework .
Мне лично нравится Linq To Sql с использованием CodeSmith для генерации сущностей, более конкретно я считаю, что Plinqo обладает наибольшей легкостью расширения. Он позволяет разделить все объекты Entity на отдельные файлы с редактируемой и генерируемой версией. Это позволяет вам расширить ваш DAL таким количеством вспомогательных функций, которое вам нужно. У него есть дополнение Visual Studio, которое позволяет вам регенерировать все ваши сущности одним щелчком мыши.
Обычно я использую принцип "сначала база данных - потом дизайн", поэтому я вношу изменения в базу данных, перехожу в VS, регенерирую сущности, а затем могу продолжать кодирование.
Независимо от того, что вы выберете, я думаю, что важным фактором для ORM является возможность конфигурировать его в соответствии с вашими потребностями, не существует универсального решения.
BTW, я не работаю на CodeSmith, я просто пользуюсь им :)
Итак, в .NET существует несколько технологий для доступа к базе данных. Сначала это ADO.NET. Это одна из «настоящих» технологий доступа, потому что другие (например, NHibernate, LINQ2SQL, Entity Framework (все они ORM)) используют ADO.NET для фактического подключения к базе данных и выполнения команд против нее. Конечно, .NET предоставляет другие способы взаимодействия с базой данных, например, импорт некоторого COM-интерфейса, но они неестественны.
Также существуют инструменты, которые помогают вам общаться с базой данных. Это расширения ADO.NET (например, доступ к данным корпоративной библиотеки), а инструменты позволяют работать с объектами (именованными сущностями), которые естественны для объектно-ориентированной среды выполнения как .NET, но загружают и сохраняют эти сущности из базы данных. Эти инструменты называются ORM (объектно-реляционное сопоставление), а современные инструменты просты в использовании и приятны.
На мой взгляд, для быстрой разработки приложений использование ORM-инструмента, такого как LLBLGEN, является лучшим решением. Вы можете значительно ускорить процесс разработки.
Что ж, если мне нужно выбрать один, я бы сказал, что Entity Framework это самый общий способ, LINQ to SLQ устаревает в будущем, NHibernate будет все больше и больше в будущем.
Но лучший совет, наверное, попробовать выбрать для всей команды! даже если у него есть обратная сторона, они все в какой-то момент были.
Есть только один способ - ADO.NET для SQL Server. В частности, объекты Connection и Reader в нем. Теперь вы можете сказать, что есть такие вещи, как Entity Framework - но, что интересно, они находятся ПЕРЕД реальным уровнем доступа, используя оба элемента доступа, названные ранее. Даже DataSets - это более высокий уровень (данные читаются через DataReader).
Так какой же метод доступа к базе данных наиболее часто используется в настоящее время? метод доступа к базе данных в настоящее время?
Готов поспорить, что это все еще наборы данных. Количество необразованных, следующих принципу drag and drop, IMHO все еще составляет большинство, и этот подход в visual studio приводит к Datasets.
Профессионалы используют своего рода ORM. Entity Framework сейчас довольно активно продвигается людьми, которые в основном не знают, что ORM может сделать, если его правильно запрограммировать. На данный момент лучшим вариантом для высококачественного слоя остается NHibernate.