Добавление второго файла .edmx приводит к тому, что первый перестает работать с ошибкой метаданных при создании объекта сущности - PullRequest
1 голос
/ 04 июня 2011

После git-слияния ветви, которая использует платформу Entity, использование Entities в другой базе данных перестало работать с ошибкой «Элемент с идентификатором Path.To.Class не существует в коллекции метаданных».

Эта ошибка возникает, когда выполняется следующая строка кода:

var databaseTable = database.CreateObject<Table>();

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

ОБНОВЛЕНИЕ: , вручную объединяя по одному файлу за раз, что, по-видимому, приводит к возникновению этой ошибки:при добавлении другого файла .edmx в файл .csprodj.Кроме того, удалив другой файл .edmx, он также снова начал работать.Другими словами: , включая второй файл .edxm в том же проекте, разбивает первый! Как мне решить эту проблему!

1 Ответ

0 голосов
/ 06 июня 2011

Мы смогли исправить это, удалив два файла .edmx и связанные с ним файлы .tt, а затем для каждого из них:

  • Создана новая модель данных объекта ADO .NET
  • Сохраненовсе имена автоматически генерируются при импорте из базы данных нетронутыми
  • Добавлена ​​генерация кода из самого файла .edmx и используется ADO .NET EntityObject Generator (в результате получается отдельный файл .tt для каждого)
  • Обновленонаш код (необходимо получить доступ к новым именам сущностей) и файлы конфигурации (изменить имя сущности для строк соединения)

Я думаю, что где-то вещи стали несовместимыми, особенно в том, как мы добавили элементы генерации кода.До этого решения «удалите все и попробуйте снова» у нас было несколько файлов .tt для одного файла .edmx - но это уже не так.

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