0

У меня возникает эта проблема при изменении строки подключения сущностей.Ошибка при динамическом изменении строки подключения

вот код:

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.

Сведения об ошибке: Никаких изменений в подключении не допускается после регистрации метаданных либо путем открытия соединения, либо для создания соединения с метаданных.

Любая помощь его оставив меня speachless ....

ответ

4

Я предполагаю, что в вашем примере, this.Entities является экземпляром контексте объекта Entity Framework.

Сообщение об ошибке означает, что вы не можете просто назначить новую строку соединения свойству Connection объекта Entities.

Вместо этого попробуйте передать его в качестве параметра конструктора:

  • найти строку, где экземпляр сущности:
    this.Entities = new ...();
  • изменить его на что-то вроде этого:
    this.Entities = new ...(entityBuilder.ConnectionString.ToString());
+0

я но он по-прежнему сохраняет ту же строку соединения, которую он назначил с помощью ... KurtDBEntities conn = new KurtDBEntities (sqlBuilder.ConnectionString.ToString()); Затем он проходит через этот конструктор: общественных KurtDBEntities (строка ConnectionString): базовый (ConnectionString "KurtDBEntities") { this.ContextOptions.LazyLoadingEnabled = TRUE; OnContextCreated(); } И им имея ArgumentException с деталями: – Mazda

+0

Bdw новые для StackOverflow так действительно не знают, как сделать правильную formattin жаль ... – Mazda

+0

Спасибо уверен, помогло: D – Mazda

Смежные вопросы