MetadataException: невозможно загрузить указанный ресурс метаданных - PullRequest
647 голосов
/ 27 марта 2009

Внезапно я продолжаю получать MetadataException за создание экземпляра моего сгенерированного ObjectContext класса. Строка подключения в App.Config выглядит правильно - не изменилась с тех пор, как работала в последний раз - и я попытался восстановить новую модель (edmx-файл) из базовой базы данных без изменений.

У кого-нибудь есть идеи?

Дополнительные сведения: я не изменил никаких свойств, я не изменил имя любых выходных сборок, я не пытался встроить EDMX в сборку. Я просто ждал 10 часов с момента ухода с работы, пока не вернулся. И тогда это больше не работало.

Я пытался воссоздать EDMX. Я пытался воссоздать проект. Я даже пытался воссоздать базу данных с нуля. Не повезло вообще.

Ответы [ 43 ]

2 голосов
/ 23 мая 2011

У меня были проблемы с этим же сообщением об ошибке. Моя проблема была решена путем закрытия и повторного открытия Visual Studio 2010.

2 голосов
/ 24 января 2018

Если вы используете edmx из другого проекта, то в строке подключения измените ...

metadata=res://*/Data.DataModel.csdl

... для ...

metadata=res://*/DataModel.csdl
2 голосов
/ 22 октября 2013

Имея ту же проблему, я заново создал EDMX из базы данных. Решает мою проблему.

2 голосов
/ 12 июля 2016

Исключением является то, что компилятор указывает на несуществующие метаданные, поэтому просто скопируйте app.config строку подключения в Web.config ConnectionString

1 голос
/ 18 апреля 2014

Плохой файл app.config или web.config может сделать это .. Я скопировал строку подключения app.config в мой web.config в своем пользовательском интерфейсе и в итоге ввел:

<connectionStrings>
    <connectionStrings>
          <add name="name" connectionString="normalDetails"/>
    </connectionStrings>
</connectionStrings>
1 голос
/ 06 августа 2018

Иногда я вижу эту ошибку в моем проекте. Я решаю это

1 - Щелкните правой кнопкой мыши файл EDMX

2 - выберите Run Custom Tool вариант

3 - Перестроить проект

1 голос
/ 27 июня 2014

Я просто не ссылался на мою библиотеку классов, которая содержала файл EDMX.

1 голос
/ 13 января 2012

У меня была такая же проблема с решением, которое содержало проекты в папке решений, когда они были перемещены в корень решения (чтобы устранить подозрительную ошибку в Mvc3AppConverter из-за расположения проектов).

Хотя решение скомпилировано после того, как все * ссылки на проекты были добавлены по мере необходимости, ошибка возникла при запуске сайта.

EDMX находится в одном из проектов, который был перемещен (проект «Данные»), но, конечно, отсутствие ссылки на проект данных не привело к ошибке компиляции, просто к ошибке во время выполнения.

Простое добавление отсутствующей ссылки в основной проект решило эту проблему, и вообще не нужно редактировать соединение.

Надеюсь, это поможет кому-то еще.

1 голос
/ 07 февраля 2010

У меня также была та же проблема и решение, что и у Рика, за исключением того, что я импортировал существующий .edmx в новый проект, и хотя базовое пространство имен не имело значения, оно было импортировано в другой подкаталог, поэтому мне также пришлось обновите строку подключения внутри Web.Config в трех местах, чтобы включить другое имя подкаталога:

0 голосов
/ 20 сентября 2013

Когда я разобрался с проблемой метаданных, у меня возникла проблема продолжения в виде исключения вызова, когда я не смог найти строку подключения для XXXEntities в app.config (где моей целью не было зависимости от app.config) , Благодаря чистой удаче я обнаружил, что ссылка на System.Data в моем проекте модульных тестов преодолела это последнее препятствие. Итак, подведем итог:

  1. Используйте nuget для установки Entity Framework в ваш проект модульного тестирования.
  2. Убедитесь, что ссылки System.Data.Entity и System.Data указаны.
  3. Сортируйте строку подключения, как описано здесь очень хорошо.
  4. Передайте строку соединения вашему частичному конструктору класса.

Теперь у меня есть метаданные в библиотеке классов, которые можно обновлять со ссылочной базы данных, и я могу направить свои приложения и модульные тесты на любую базу данных на любом сервере во время выполнения.

Приложение: Когда я переместил мой edmx в папку, я снова получил ошибку. После небольшого исследования я обнаружил, что ваша строка метаданных должна выглядеть следующим образом: metadata = res: //EPM.DAL/Models.EPM.csdl, где EPM.DAL - это имя сборки, а EPM.edmx находится в папка моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...