无法检索将MVC3 EF与Postgres 9.1连接的元数据

时间:2012-06-05 20:58:57

标签: c# asp.net-mvc-3 entity-framework postgresql npgsql

我正在尝试将我的MVC3项目与Postgres 9.1中的数据库连接,我已经按照以下链接:info1info2info3来看看,我只需要字符串连接就可以创建一个Controller。

我引用了Mono.SecurityNpgsql。dll,我将它们添加到程序集

我正在使用此connectionString

<connectionStrings>
    <add name="TestPostgreSQLContext"         
         connectionString="metadata=res://*/Models.TestPostgreSQL.csdl|res://*/Models.TestPostgreSQL.ssdl|res://*/Models.TestPostgreSQL.msl;provider=Npgsql.NpgsqlConnection;provider connection string=&quot;data source=localhost;initial catalog=testPostgres;persist security info=True;user id=postgres;password=123456;multipleactiveresultsets=True;App=EntityFramework&quot;" 
         providerName="Npgsql.NpgsqlConnection"/>
</connectionStrings>

代码加价:

public TestPostgreSQLContext() : base("name=TestPostgreSQLContext", "TestPostgreSQLContext")
{            
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}
public TestPostgreSQLContext(string connectionString) : base(connectionString, "TestPostgreSQLContext")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}
public TestPostgreSQLContext(EntityConnection connection) : base(connection, "TestPostgreSQLContext")
{
    this.ContextOptions.LazyLoadingEnabled = true;
    OnContextCreated();
}

这是一个更加图形化的想法: enter image description here

1 个答案:

答案 0 :(得分:2)

您是否在应用程序的配置文件或machine.config内声明了Npgsql作为注册提供程序? (见this official Npgsql documentation