2010-05-28 3 views
1

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

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

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

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

+3

С какой базой данных вы пытаетесь соединиться? –

+1

Меня больше всего интересуют MS SQL Server и реляционные базы данных. – user246392

+0

Существует немало других реляционных баз данных, кроме SQL Server. – R0MANARMY

ответ

3

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

L2S не работает с другими базами данных из коробки, есть сторонние поставщики для LINQ to SQL для других баз данных – Davy8

0

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

0

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

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

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

0

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

Смежные вопросы