4

У меня есть веб-приложение ASP.NET 4.0, которое использует Entity Framework 4.3.1 и Self-Tracking Entities. Он отлично работает, пока я не добавлю к нему еще один ADO.NET Entity Data Model (.edmx). После этого проект компилируется без каких-либо ошибок, но как только он вызывает объект объекта самонаблюдения, приложение создает System.InvalidOperationException: информация о сопоставлении и метаданных не может быть найдена для EntityType 'namespace.classname'.System.InvalidOperationException: информация о сопоставлении и метаданных не найдена для EntityType

Я попытался добавить вторую модель данных Entity Data в другое пространство имен, но это не помогает. Если я удаляю добавленный файл .edmx из проекта, проблема исчезнет. Если я удалю файлы сущности самообслеживания (Model.tt и Model.Context.tt), проблема исчезнет.

Похоже, что Self-Tracking Entities не могут функционировать должным образом, если существует больше, чем модель данных сущностей.

Неужели кто-нибудь еще испытал и решил эту проблему?

ответ

0

Я думаю, что объекты самоконтроля не поддерживаются с 4.1 (DbContext) и далее. У нас было несколько проблем при работе при обновлении от 4 до 4.2 с помощью ste, и мы закончили переработку всего, чтобы использовать DbContext и избавиться от ste. С тех пор это работает как шарм!

+0

Самостоятельные объекты для работы 4.3.1 Проблема, которую я обнаружил, заключается в том, что они работают, когда есть один объект ADO.NET Только модель данных. Если вы добавите больше, он перестанет работать. – SHS

1

Обязательно используйте согласованную генерацию контекста во всем своем решении.

Используйте EF 5.x DbContext Generator для каждой из ваших моделей данных сущности. Вы можете загрузить шаблон через ExtensionManager (поиск EF 5.x) или here

+0

Было бы интересно знать _WHY_, этот эффект возникает ... Кто-нибудь? – Alechandro