【问题标题】:Error while Changing the connection string dynamically动态更改连接字符串时出错
【发布时间】:2012-01-05 22:08:04
【问题描述】:

我在更改我的实体连接字符串时遇到了这个问题。

代码如下:

SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
                        sqlBuilder.DataSource = @"KURT-PC\SQLEXPRESS";
                        sqlBuilder.InitialCatalog = "KurtDB";
                        sqlBuilder.UserID = "Admin";
                        sqlBuilder.Password = "123456";
                        sqlBuilder.IntegratedSecurity = false;
                        sqlBuilder.MultipleActiveResultSets = true;

                        EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
                        entityBuilder.Provider = "System.Data.SqlClient";
                        entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
                        entityBuilder.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";

                        this.Entities.Connection.ConnectionString = conn.Connection.ConnectionString = entityBuilder.ConnectionString.ToString();

当它尝试更改连接字符串时,它会给我一个 InvalidOperationEsception。

错误详情: 通过打开连接或使用 MetadataWorkspace 构建连接来注册元数据后,不允许修改连接。

任何帮助它让我无话可说......

【问题讨论】:

    标签: asp.net linq linq-to-entities connection-string entity-model


    【解决方案1】:

    我假设在您的示例中,this.Entities 是实体框架对象上下文的一个实例。

    错误消息意味着您不能简单地将新连接字符串分配给Entities 对象的Connection 属性。

    相反,尝试将其作为构造函数参数传递:

    • 找到实例化实体的行:
      this.Entities = new ...();
    • 把它改成这样的:
      this.Entities = new ...(entityBuilder.ConnectionString.ToString());

    【讨论】:

    • 我试过了,但它仍然保留分配给它的相同连接字符串... KurtDBEntities conn = new KurtDBEntities(sqlBuilder.ConnectionString.ToString());然后它通过这个构造函数: public KurtDBEntities(string connectionString) : base(connectionString, "KurtDBEntities") { this.ContextOptions.LazyLoadingEnabled = true; OnContextCreated();并且我有一个详细的参数异常:
    • bdw 是 stackoverflow 的新手,所以真的不知道如何正确格式化对不起...
    猜你喜欢
    • 2018-09-20
    • 2011-04-02
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多