Как добавить собственный поставщик БД, чтобы он был доступен в Visual Studio? - PullRequest
14 голосов
/ 04 февраля 2011

Я хотел работать с пользовательским поставщиком БД в Visual Studio.Мне нужно, чтобы использовать Entity Framework.

Например, я скачал NpgSQL, зарегистрировал их в GAC:

gacutil  -i  c:\temp\npgsql.dll
gacutil  -i  c:\temp\mono.security.dll

и добавил в файл machine.config:

<add name="Npgsql Data Provider"
invariant="Npgsql"  support="FF"
description=".Net Framework Data Provider for Postgresql Server"
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.6.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />

Но Npgsql не появился в списке источников данных в Visual Studio:

Data source in VS

Как добавить настраиваемый поставщик БД в этот список?

UPD: если я используюкомандная строка edmgen.exe Я получил ошибку:

ошибка 7001: Не удалось найти или загрузить зарегистрированный поставщик данных .Net Framework.

Ответы [ 4 ]

3 голосов
/ 07 февраля 2011

Старый (от 7 февраля 2013 г.): невозможно добавить провайдера Npgsql, чтобы он был доступен в Visual Studio, поскольку NpgSql пока не поддерживает DDEX.

Обновление от 29 декабря 2013 года: похоже, что поддержка DDEX была добавлена ​​.

3 голосов
/ 04 февраля 2011

Вам необходимо объявить DbFactoryProvider в файле конфигурации (Web.config, Machine.config и т. Д.).Вот пример, который я извлек из проекта с использованием MySQL:

<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient"/>
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  </DbProviderFactories>
</system.data>

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

2 голосов
/ 06 сентября 2012

Если вы хотите перечислить Npgsql в списке источников данных в Visual Studio, эта статья может быть немного полезна.

В любом случае, поскольку Visual Studio поставляется Microsoft, очевидно, вам нужно работать с таблицей реестра.

0 голосов
/ 05 сентября 2011

От: http://fxjr.blogspot.com/2011/05/npgsql-design-time-support-preview.html

приходит очень важный шаг, который вы должны сделать: внутри папки Npgsql.Designer2 находится файл с именем NpgsqlProvider.gen.reg. Вы должны сливать этот файл в свой реестр каждый раз, когда запускаете VS.Net для отладки проекта

...