4

我正在尝试将我的 MVC3 项目与 Postgres 9.1 中的数据库连接起来,我已经按照以下链接进行操作:info1info2info3 ,从外观上看,我只需要字符串连接即可创建控制器。

我有对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();
}

这是一个更形象化的想法: 在此处输入图像描述

4

1 回答 1

2

您是否在应用程序的配置文件或 machine.config 中将 Npgsql 声明为注册提供程序?(请参阅此官方 Npgsql 文档

于 2012-06-27T11:18:21.163 回答