Какой поставщик данных .NET? - PullRequest
1 голос
/ 28 мая 2010

Я новичок в программировании баз данных, поэтому я хотел бы помочь встать на правильный путь. Я читал, что существуют определенные Microsoft и сторонние поставщики данных для доступа к данным. MSDN содержит информацию о поставщиках данных для SQL Server, OLE DB, ODBC, Oracle, , а также поставщика EntityClient (Entity Framework) .

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

Какое будущее?

Кроме того, я видел учебные пособия по Linq to SQL, но к какой категории относится L2S ?

Ответы [ 4 ]

3 голосов
/ 28 мая 2010

Linq to SQL - это ORM, сопоставитель объектных отношений. Entity Framework - это также ORM, и хотя может показаться, что Entity Framework является естественным развитием L2S, на самом деле они были разработаны параллельно и довольно сильно отличаются друг от друга. Например, L2S не будет работать ни с какой другой базой данных, кроме MSSQL, тогда как структура сущностей будет работать с большинством баз данных.

Инфраструктура сущностей позволяет вам использовать вашего собственного поставщика данных, поэтому поставщик будет в большой степени полагаться на то, какую базу данных вы хотите использовать, и есть ли для нее доступный поставщик. Если вы еще не выбрали базу данных, вам нужно будет сначала взвесить все за и против (а затем, вероятно, перейти на MSSQL, потому что это проще, если вы разрабатываете с .NET).

Учитывая вашу предпочтительную форму MSSQL, ваш дизайн базы данных будет иметь большое влияние на то, хотите ли вы использовать ORM. Linq to SQL L2S все еще хорошо используется в сообществе разработчиков, но я не уверен относительно его будущего. Linq to Entities (или структура сущностей) является относительно новой, но с версии 4.0 я считаю, что она гораздо более готова для бизнеса и хорошо поддерживается. Вы также можете рассмотреть NHibernate, если вам нравится опция с открытым исходным кодом (и тяжелая работа). Настройка сложнее, но зачастую стоит усилий для сложных доменов.

0 голосов
/ 28 мая 2010

На самом деле, это зависит от того, какую задачу вы решаете, ваш опыт работы в той или иной базе данных. Если вы хотите использовать ORM, у вас есть много вариантов: LINQ 2 SQL, Entity Framework, NHibernate, DataObjects и другие. LINQ 2 SQl работает только с SQL Server, Entity Framework может работать с разными провайдерами, но на самом деле я не знаю ни одного официального провайдера от Oracle, поэтому я бы не стал доверять ни одному стороннему провайдеру. NHibernate - действительно решение для нескольких баз данных, более зрелое, чем предыдущие два. Но у него есть свои недостатки. Запоминающийся ORM - не единственный выбор. Вы можете использовать ADO.NET с большим количеством доступных поставщиков. Это предполагает, что вы сами пишете код SQL и контролируете все возможности подключения и транзакций, но это также дает вам больше свободы, поскольку этот уровень ниже ORM.

0 голосов
/ 28 мая 2010

Зависит от базы данных, которую вы планируете использовать.

  • Официально Microsoft выдвигает Entity Framework как новый источник доступа к данным. Теоретически вы можете использовать EF с Oracle , MySQL и Postgre .
  • Последнее, что я услышал Microsoft не планировала активно разрабатывать Linq для SQL. Тем не менее, он довольно хорош в качестве легковесного слоя ORM поверх SQL Server и заслуживает изучения (в зависимости от потребностей вашего проекта).
  • Существует также SqlClient , если вам нужно подключение более низкого уровня к вашему SQL Server. Это может быть жизнеспособным вариантом в некоторых ситуациях. Это определенно не новинка, но, вероятно, она поможет вам (в целом) узнать, как работает ADO, прежде чем вы начнете работать с абстракциями, такими как EF.

Я не могу говорить с OLE DB или ODBC.

0 голосов
/ 28 мая 2010

Поставщики Linq 2 Sql и Entity также используют управляемые драйверы на серверной части. Управляемые драйверы эффективнее, чем драйверы ODBC и OLE DB. Для большинства баз данных существуют управляемые провайдеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...