Каков наиболее используемый метод доступа к базе данных с С# в настоящее время

Хорошо, я задаю этот вопрос, потому что я полностью смущен. Я использовал обычный подход для доступа к базам данных с С# (я имею в виду, используя SQLConnection, OracleConnection, SQLCommand, executequery и т.д.). Затем я услышал об ADO.NET, ORM и узнал NHibernate (не про, но я могу справиться).

В последнее время я не вижу особых действий в отношении NHibernate. Люди вокруг меня, которые использовали NHibernate (и были поклонниками), теперь переходят к другим методам.

Итак, каков наиболее используемый метод доступа к базе данных в настоящее время? Как я могу отслеживать эту меняющуюся тенденцию?

Ответ 1

Наиболее распространенными методами являются, возможно, следующие:

  • LINQ to SQL
  • Entity Framework
  • ADO.NET напрямую
  • NHibernate
  • Другие O/RM.

Все они все еще используются и имеют разные преимущества и недостатки. Я думаю, что Microsoft в настоящее время пытается побудить людей использовать Entity Framework.

Ответ 2

Существует только один способ - ADO.NET для SQL Server. В частности, объекты Connection и Reader находятся там. Теперь вы можете сказать, что есть такие вещи, как Entity Framework, но достаточно интересны, что они ВЫШЕ реальному уровню доступа, используя оба элемента доступа, названные ранее. Даже DataSets представляют собой более высокий уровень (данные считываются с помощью DataReader).

Итак, какая наиболее используемая база данных метод доступа в настоящее время?

Я уверен, что STILL - это набор данных. Количество необразованных по принципу перетаскивания - ИМХО все еще большинство, и этот подход в визуальной студии приводит к наборам данных.

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

Ответ 3

На мой взгляд, для быстрой разработки приложений лучшим инструментом является использование инструмента ORM, такого как LLBLGEN. Вы можете значительно ускорить развитие.

Ответ 4

Итак, существует несколько технологий для доступа к базе данных в .NET. Сначала это ADO.NET. Это одна из "истинных" технологий доступа, поскольку другие (например, NHibernate, LINQ2SQL, Entity Framework (все они ORM)) используют ADO.NET для фактического подключения к базе данных и выполнения команд против нее. Конечно,.NET предоставляет другие способы взаимодействия с базой данных, например, импортируя некоторые из COM-интерфейса, но они не являются естественными.

Кроме того, существуют инструменты, которые помогают вам связываться с базой данных. Это расширения ADO.NET(например, доступ к данным Enterprise Library), а инструменты позволяют работать с объектами (называемыми объектами), которые являются естественными для объектно-ориентированной среды выполнения, как .NET, но загружают и сохраняют эти объекты из базы данных. Эти инструменты с именем ORM (объектно-реляционный картограф) и современные инструменты просты в использовании и приятны.

Ответ 5

Мне лично нравится Linq To Sql, используя CodeSmith для создания сущностей, более конкретно я думаю Plinqo имеет наибольшую легкость расширяемости. Он позволяет разделить все объекты Entity на отдельные файлы с редактируемой версией и сгенерированной. Это позволяет расширить DAL с помощью множества вспомогательных функций, которые вам нужны. он имеет надстройку Visual Studio, которая позволяет вам регенерировать все ваши объекты одним щелчком мыши.

Обычно я использую первый проект базы данных, поэтому я делаю свои изменения в базе данных, перехожу к VS, регенерирую сущности, а затем могу продолжить кодирование.

Независимо от того, что вы выбираете, я думаю, что важным фактором для ORM является возможность настроить его для удовлетворения ваших потребностей, ни один из них не подходит для всех.

Кстати, я не работаю для CodeSmith, я просто использую его:)

Ответ 6

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

Но лучший совет, вероятно, попытается выбрать один для всей команды! даже если у него есть недостаток, все они есть в какой-то момент.

Ответ 7

NHibernate и Entity Framework - отличные инструменты для абстрагирования базы данных (EF Code First поражает), но в некоторых случаях это плохо.

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

Лично я предпочитаю поддерживать контроль в своих руках.

Я создал инструмент Thunderstruck, который я использую в своих проектах, и недавно я поставил источник на Github.