Отладка Entity Framework DBContext API-сопоставлений - PullRequest
0 голосов
/ 28 октября 2011

Добрый день,

Я сопоставляю некоторые уже существующие бизнес-объекты с нашей базой данных, используя Entity Framework.Эти объекты изначально использовали самодельный метод доступа к данным, но мы хотели опробовать Entity Framework на нем сейчас, когда он использует Code-First.Я ожидал, что это будет довольно просто, но теперь у меня есть некоторые сомнения.

Я пытаюсь использовать только атрибуты для достижения этой цели, чтобы у меня не было некоторых отображений здесь, некоторые изэто там, и еще больше там ....

Когда я запрашиваю сущности, я получаю System.Data.Entity.DynamicProxies.MyClass_23A498C7987EFFF2345908623DC45345 и подобные объекты обратно.Эти объекты содержат данные из связанной записи, а также связанные объекты (хотя это также и DynamicProxies).

Что здесь происходит?Что-то не так с моим отображением?Почему вместо этого не возвращается MyBusinessObject.MyClass?

1 Ответ

3 голосов
/ 28 октября 2011

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

Это поведение можно отключить в контексте:

context.Configuration.ProxyCreationEnabled = false;

Ваши свойства навигации не будут загружаться автоматически после того, как высделайте это, и вам придется использовать энергичную загрузку (метод Include в запросах) или явную загрузку.

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