Entity Framework отложенная загрузка и шаблон DTO
Допустим, мы используем объекты DTO для передачи данных между уровнем сервиса и представлением (MVC). layer.In в этом случае уровень представления может получить доступ только к объектам DTO. Поэтому мы не можем использовать функцию ленивой загрузки в Entity framework. Неужели я здесь? Пожалуйста, дайте свои предложения.
(мои DTO не являются сущностями в EF, и я реализовал репозиторий и шаблон единицы работы)
2 ответа:
Вы можете использовать отложенную загрузку, но только на стороне службы, когда вы работаете с присоединенными объектами.
Сначала поставьте свое определение правильно: ваши объекты DTO также являются вашими сущностями в EF 4.1? Являются ли они (также) вашими моделями и содержат ли они бизнес-логику?
Если это так, я бы рекомендовал отключить создание прокси (myDbContext.Конфигурация.ProxyCreationEnabled = false;), так как они не могут быть легко сериализованы. Затем используйте репозиторий для dataAccess, где в методах CRUD вы указываете правильные состояния сущностей, такие как: http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx