Моя программа использует EF для доступа к данным из базы данных SQL CE.При отладке приложения с помощью настройки отладки все работает нормально, но если я использую настройку выпуска, я получаю исключение MetadataException, когда программа пытается получить доступ к базе данных через EF.Что я проверял до сих пор:
- Конфигурация отладки и выпуска идентична (та же целевая платформа)
- Файл app.config копируется в тот же каталог, что и исполняемый файл (\ Release)
- Файл базы данных sdf копируется в \ Release \
- Обработка артефактов метаданных установлена на Внедрение в выходную сборку
- Имя строки подключения идентично в app.config и EFmodel
Мой app.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="GeoDataEntities" connectionString="metadata=res://*/Model.EF.Model.csdl|res://*/Model.EF.Model.ssdl|res://*/Model.EF.Model.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|\GeoData.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Сборка Model.EF - это пространство имен, а Model - имя edmx, думаю, это должно быть правильно.
Я знаю, что есть много постов и блогов о MetadataException, и я пытался решить эту проблему, но пока ничего не помогло.
С наилучшими пожеланиями
Jay