在Asp.net 5下使用Npgsql的EF6

时间:2016-02-12 13:25:37

标签: postgresql entity postgresql-9.1 npgsql

您好我正在尝试在Asp.net 5下使用EF6和npsql。我使用一个简单的控制台(asp.net5)进行测试,并使用单独的类lib(.net 4.5)作为简单的测试环境进行数据访问。已经安装了EF6 nuget EntityFramework6.Npgsql。还从project.json文件中删除了.net核心依赖项。 我继续遇到以下错误的问题。

EntityFramework.dll中发生了'System.NotSupportedException'类型的异常,但未在用户代码中处理

其他信息:无法确定“Npgsql.NpgsqlFactory”类型的提供程序工厂的提供程序名称。确保在应用程序配置中安装或注册了ADO.NET提供程序。

“Npgsql.NpgsqlFactory”的提供程序名称似乎有问题。但是已设置配置中的提供程序名称。可能需要在编译时设置。有什么想法吗?

app.config文件如下

<?xml version="1.0" encoding="utf-8"?>

<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<providers>
<provider invariantName="Npgsql.NpgsqlFactory" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework"></provider>
</providers>
<defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, Npgsql" />
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="Npgsql" />
<add name="Npgsql" invariant="Npgsql" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
</configuration>

任何帮助将不胜感激。非常感谢。

1 个答案:

答案 0 :(得分:1)

您缺少配置中npgsql的完整程序集信息。请查看此答案以获取更多相关信息和完整信息:

https://stackoverflow.com/a/35440114/246097

我希望它有所帮助。