向DBContext添加重载

时间:2011-11-17 14:44:02

标签: c# entity-framework-4.1

我正在尝试在我的DBContext的构造函数中将密码添加到我的字符串连接中,如下所示

public partial class Control : DbContext
{
    public Control(string conexion): base(crearConexion(conexion))
    {

    }

    public static String crearConexion(string nombreConexion) 
    {
        string conexion = ConfigurationManager.ConnectionStrings[nombreConexion].ConnectionString;
        SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(conexion);
        sqlBuilder.Password = "somepassword";
        return sqlBuilder.ToString();
    }
}

但它抛出了这个异常    system.argumentexception keyword not supported 'metadata'

为什么我做错了?

1 个答案:

答案 0 :(得分:4)

尝试使用EntityConnectionStringBuilder

如果您查看EF连接字符串(检查您的app.config文件),您将看到sql server连接字符串是其中的一部分,而且还有其他信息,SqlConnectionStringBuilder可以解析:

metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=Test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"