【发布时间】:2014-01-30 17:56:28
【问题描述】:
我想在 ASP.NET MVC 4 项目中使用 Entity Framework 6 和 PostgreSQL。我得到了 Entity Framework 6.0.2 + Npgsql 2.0.14.3,但我得到了错误。我该如何解决这个问题?
错误:
在 mscorlib.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
附加信息:实体框架提供程序类型“Npgsql.NpgsqlServices, Npgsql, Version=2.0.14.3, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7”的“Instance”成员未返回从“System.Data”继承的对象.Entity.Core.Common.DbProviderServices'。实体框架提供者必须从此类继承,并且“实例”成员必须返回提供者的单例实例。这可能是因为提供者不支持 Entity Framework 6 或更高版本;请参阅http://go.microsoft.com/fwlink/?LinkId=260882 了解更多信息。
Web.config
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description="Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="DatabaseContext" connectionString="Server=localhost;port=5432;Database=main;User Id=postgres;Password=password;" providerName="Npgsql" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql" />
</providers>
</entityFramework>
【问题讨论】:
-
我刚刚在另一个问题中为此创建了一个答案。请看一下:stackoverflow.com/a/21839153/246097
-
Updated package 安装 EF6 提供程序。有关说明,请参阅this answer。
标签: c# asp.net-mvc postgresql asp.net-mvc-4