У меня есть следующий код где-то в приложении. код выглядит следующим образом:Динамическое создание строки подключения EF6.0 вызывает проблемы
Hyperion.Data.MCQEntities _model = null;
const string K_MODEL = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;";
public Engine(string cnnstr)
{
//string connection =(new ConnectionStringBuilder(cnnstr)).ToString();
string connectionString = new System.Data.EntityClient.EntityConnectionStringBuilder
{
Metadata = K_MODEL, //"res://*",
Provider = "System.Data.SqlClient",
ProviderConnectionString = cnnstr,
}.ConnectionString;
_model = new Data.MCQEntities(connectionString);
_model.Connection.Open();
}
проблема, которую я не понимаю, что когда я использую Metadata = "res://*"
он работает, но когда я использую Metadata=K_MODEL
он не работает вообще. В чем может быть проблема?
Вы дважды проверили, что значение 'K_MODEL' верное? Моя строка соединения Метаданные выглядят следующим образом: 'res: // */Entity. {0} .csdl | res: // */Entity. {0} .ssdl | res: // */Entity. {0} .msl' – StriplingWarrior
проверено много раз. моя работа не застревает, и я уже использую другую форму, которая работает. Я просто хочу знать, почему он так себя ведет? удаление модели и воссоздание, как утверждают некоторые, не является решением. ресурсы встроены, если они не были тогда res: // * никогда не будет работать. и я также подтвердил имя файла модели и loc. что происходит за кулисами? –
Я не знаю, как все это работает за кулисами. Он работает, если вы используете ту же строку соединения в файле конфигурации, а не вставляете ее? Возможно, вы захотите дважды проверить, что ваш конструктор не был изменен, чтобы сделать черную магию. – StriplingWarrior