我试图使用Entity Framework和PostgreSQL设置我的应用程序,但是遇到了问题。我已经通过NuGet添加了Npgsql
,并在web.config
中添加了以下提供程序工厂:
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description=".Net Framework Data Provider for Postgresql Server"
type="Npgsql.NpgsqlFactory, Npgsql,
Version=2.0.12.0, Culture=neutral,
PublicKeyToken=5d8b90d52f46fda7" />
</DbProviderFactories>
</system.data>
使用连接字符串:
<add name="MyDb" providerName="Npgsql"
connectionString="Server=localhost;Port=5432;Database=withoomph;User ID=postgres;Password=******;enlist=true" />
看起来连接到数据库没问题,但当我尝试对数据库执行任何操作时,会出现以下异常:
FATAL: 3D000: 数据库"withoomph"不存在
当设置数据库时,我正确地设置了数据库初始化器:
static MyDB()
{
Database.SetInitializer<MyDB>(new CreateDatabaseIfNotExists<MyDB>());
}
所以当我尝试使用DbContext
时,它应该只是简单地创建数据库,对吧?我不明白,整个早上都在绞尽脑汁!