jcv*_*dan 6 c# postgresql entity-framework npgsql
我正在尝试设置我的应用程序以使用Entity Framework和PostgreSQL,但我遇到了一个问题.我已经Npqsql
通过nuget添加了,并将以下提供程序工厂添加到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>
Run Code Online (Sandbox Code Playgroud)
使用连接字符串:
<add name="MyDb" providerName="Npgsql"
connectionString="Server=localhost;Port=5432;Database=withoomph;User ID=postgres;Password=******;enlist=true" />
Run Code Online (Sandbox Code Playgroud)
它似乎很好地连接到数据库,但当我尝试在数据库上执行任何类型的操作时,我得到以下异常:
FATAL: 3D000: database "withoomph" does not exist
当db设置如下时,我正在正确设置数据库intitializer:
static MyDB()
{
Database.SetInitializer<MyDB>(new CreateDatabaseIfNotExists<MyDB>());
}
Run Code Online (Sandbox Code Playgroud)
所以当我尝试用我的DbContext
权利做任何事情时,它应该只是简单地创建数据库?我不明白,整个早上都拔我的头发!
不幸的是,Npgsql没有(截至目前)自动模式创建代码优先.
您可以先创建数据库,然后连接到它.
更新(2016):Npgsql 3现在首先实现数据库创建代码.确保NpgsqlConnection
通过代码或XML设置配置正确的连接工厂以使用s,并使用适当的连接字符串.
归档时间: |
|
查看次数: |
5793 次 |
最近记录: |