Ошибка, возникшая после создания классов структуры сущностей с помощью инструмента edmgen.

StackOverflow https://stackoverflow.com/questions/2872353

Вопрос

Сначала я прочитал это вопрос, но эти знания не помогли решить мои проблемы.

Сначала я создал файл 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=&quot;Data Source=aemloviji\sqlexpress;Initial Catalog=uqs;Integrated Security=True;MultipleActiveResultSets=True&quot;" 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

Более подробная информация доступна здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top