2011-02-04 52 views
14

我想在Visual Studio中使用自定义数据库提供程序。我需要它来使用实体框架。如何添加可在Visual Studio中访问的自定义数据库提供程序?

例如,我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我得到错误:

error 7001: Failed to find or load the registered .Net Framework Data Provider.

回答

3

旧的(来自7 Fabruary 2013):在Visual Studio中添加Npgsql提供程序是不可能的,因为现在的NpgSql不支持DDEX。

2013年12月29日更新:似乎DDEX支持是added

3

您需要声明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中可用。

+0

我添加到machine.config文件Npgsql提供程序,但注意到发生了。 – Anton 2011-02-05 19:24:01

+1

您必须选择正确的machine.config进行编辑。在64位系统的情况下,编辑c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0。* \ Config \ machine.config,否则使用目录“Framework”而不是“Framework64”来找到正确的配置文件。 – 2012-03-26 11:24:45

2

如果要列出了在Npgsql的Visual Studio中的数据源列表,这article可能会有点帮助。

无论如何,由于Visual Studio由Microsoft提供,显然你需要在注册表上工作。

相关问题