Динамическое создание строки подключения 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 она вообще не работает. В чем может быть проблема?

1 ответ

res//* сообщает EF, что метаданные встроены в сборку в качестве ресурса. Если вы пропустите его, EF ищет файл на диске. Действие по умолчанию для edmx заключается в встраивании артефактов в сборку, поэтому, если вы не изменили эти файлы, они не находятся на диске, и EF их не может найти.

licensed under cc by-sa 3.0 with attribution.