2015-08-13 3 views
0

Я пытаюсь получить эту работу за последние пару дней без успеха.Entity Framework установил строку подключения во время выполнения

Это то, что я сделал до сих пор.

string providerName = "System.Data.SqlClient"; 
string serverName = serverIPAddress; 
string databaseName = myDBName; 

SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); 

sqlBuilder.DataSource = serverName; 
sqlBuilder.InitialCatalog = databaseName; 
sqlBuilder.PersistSecurityInfo = true; 
sqlBuilder.MultipleActiveResultSets = true; 
sqlBuilder.UserID = "sa"; 
sqlBuilder.Password = saPassword; 

string providerString = sqlBuilder.ToString(); 

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); 

entityBuilder.Provider = providerName; 

entityBuilder.ProviderConnectionString = providerString; 

entityBuilder.Metadata = "res://*/TUModel.myModel.csdl|res://*/TUModel.myModel.ssdl|res://*/TUModel.myModel.msl";    
myEntities ctx = new myEntities(entityBuilder.ConnectionString); 

Конструктор в классе сущностей выглядеть

public myEntities(string connectionString) : base("name=myEntities") 
{ 
} 

Когда я бегу нет ошибок. Однако, если я удаляю строку подключения myEntities от app.config, тогда она выдает исключение. Если я оставлю его как есть, он игнорирует строку соединения в коде и использует ее в app.config.

Любая помощь была бы принята с благодарностью.

ответ

2

Ваш конструктор контекста не передает вашу строку соединения, а проходит через фиксированное значение name=myEntities. Измените его так:

public myEntities(string connectionString) : base(connectionString) 
{ 
} 
+0

Конечно. Дурак я!!! – Anup

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