我已经看到了一些关于使用Entity Framework和PostgreSQL的讨论线程,并且官方提供了相关指令。但这些指令需要每次安装都运行gacutil
,对于部署来说不太方便。
我想要做的是直接将PostgreSQL连接传递给DbContext
构造函数。这对我来说足够了,因为我打算使用没有设计器的CodeFirst
。这就是我所做的:
public class Context : DbContext
{
Context(System.Data.Common.DbConnection connection)
: base(connection, true)
{
}
public static Context CreateContext()
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=********;Database=xxx;");
conn.Open();
return new Context(conn);
}
}
但是使用这种方法我得到了一个NotSupportedException(不支持的操作异常),并显示以下消息:
无法确定类型为 'Npgsql.NpgsqlConnection' 的连接的提供程序名称。
我该怎么做?