Ошибка, возникшая после создания классов структуры сущностей с помощью инструмента edmgen.
-
03-10-2019 - |
Вопрос
Сначала я прочитал это вопрос, но эти знания не помогли решить мои проблемы.
Сначала я создал файл edmx с помощью Visual Studio.Сгенерированные файлы с именами:
- uqsModel.Designer.cs
- uqsModel.edmx
Эти файлы расположены в папке App_Code.
И мое веб-приложение работает нормально.В Web Config автоматически генерируется строка подключения.
<add name="uqsEntities" connectionString="metadata=res://*/App_Code.uqsModel.csdl|res://*/App_Code.uqsModel.ssdl|res://*/App_Code.uqsModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=aemloviji\sqlexpress;Initial Catalog=uqs;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /></connectionStrings>
Затем мне пришлось генерировать классы с помощью инструмента инструмент edmgen(режим полной генерации).Сгенерированы новые файлы с именами:
- uqsModel.cs
- uqsModel.csdl
- uqsModel.msl
- uqsModel.ssdl
- uqsViews.cs
он сохраняет новые классы в папке, где ранее находились файлы edmx, и удаляет существующие файлы edmx.И когда страница перенаправляется на любую веб-страницу, код на стороне сервера дает сбой.И проблема: Невозможно загрузить указанный ресурс метаданных..
Какая-нибудь идея, пожалуйста.
Решение
Проблема, по-видимому, связана с тем фактом, что вы сгенерировали метаданные в виде файлов .csdl, .ssdl и .msl, а ваша строка подключения указывает на ресурс, который должен быть встроен в dll проекта (что, скорее всего, будет быть недоступным на вашем веб-сайте).
Решение состоит в том, чтобы исправить путь к метаданным, как показано ниже:
metadata=~\App_Code\uqsModel.csdl|~\App_Code\uqsModel.ssdl|~\App_Code\uqsModel.msl
Более подробная информация доступна здесь.