У меня возникают серьезные проблемы с Entity Framework, и я не могу понять, что происходит.
Я пробовал много вариантов: MetadataException: Не удалось загрузить указанный ресурс метаданных и знаменитую запись блога Craig Stuntz, расположенную по адресу: http://blogs.teamb.com/craigstuntz/2010/08/13/38628/
У меня есть 3 проекта для краткости:
Funscribe.Data(файл EDMX, расположенный здесь)
Funscribe.Console(консольное приложение)
Funscribe.Web(приложение MVC 3)
Первоначально это было просто приложение MVC, и я недавно добавил этот новый консольный проект.
Я скопировал строку подключения из web.config и применил ее к моему app.config:
<add name="FundirectoryEntities" connectionString="metadata=res://*/Fundirectory.csdl|res://*/Fundirectory.ssdl|res://*/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
Мое приложение mvc продолжает работать, но когда я запускаю консольное приложение, я получаю страшное:
"Невозможно загрузить указанный ресурс метаданных.
Я попытался изменить строку подключения на настройку wild card:
<add name="FundirectoryEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
Получаю: Указанное имя EntityContainer по умолчанию "FundirectoryEntities" не удалось найти в информации сопоставления и метаданных.
Я попытался изменить его, чтобы указать сборку:
<add name="FundirectoryEntities" connectionString="metadata=res://Funscribe.Data.dll/Fundirectory.csdl|res://Funscribe.Data.dll/Fundirectory.ssdl|res://Funscribe.Data.dll/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
Получаю: Невозможно разрешить сборку "Funscribe.Data.dll".
Я потерялся от того, что я должен делать здесь. Я просто обновил этот проект до Visual Studio 2012 (я представляю это новое консольное приложение после преобразования в VS 2012).
Я также заметил, что файл Funscribe.Data.dll находится в папке bin bin проекта, я вручную удалил эти файлы и наблюдал, как они воссозданы. И что меня озадачивает, веб-приложение продолжает работать правильно!
Все проекты находятся на .NET 4.0. Консольное приложение использует .NET 4.0, а не проверку профиля клиента.
Любая помощь по этому вопросу очень ценится.