Ответ 1
Старый (с 7 февраля 2013 г.): невозможно добавить поставщика Npgsql в Visual Studio, потому что NpgSql пока не поддерживает DDEX.
Обновление от 29 декабря 2013 года: похоже, поддержка DDEX была добавлена .
Я хотел работать с поставщиком пользовательских баз данных в 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:
Как добавить в этот список поставщика пользовательских баз данных?
UPD: Если я использую командную строку edmgen.exe, я получил ошибку:
Ошибка 7001: Не удалось найти или загрузить зарегистрированный поставщик данных .Net Framework.
Старый (с 7 февраля 2013 г.): невозможно добавить поставщика Npgsql в Visual Studio, потому что NpgSql пока не поддерживает DDEX.
Обновление от 29 декабря 2013 года: похоже, поддержка DDEX была добавлена .
Вам нужно объявить 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.
Если вы хотите перечислить Npgsql в списке Datasource в Visual Studio, эта статья может быть немного полезна.
В любом случае, поскольку Visual Studio поставляется корпорацией Майкрософт, очевидно, вам нужно работать в таблице реестра.
От: http://fxjr.blogspot.com/2011/05/npgsql-design-time-support-preview.html
появляется очень важный шаг, который вы должны сделать: внутри папки Npgsql.Designer2 есть файл NpgsqlProvider.gen.reg. Вы должны объединить этот файл в свой реестр каждый раз, когда вы запускаете VS.Net для отладки проекта