Entity Framework Ленивая загрузка и шаблон DTO - PullRequest
3 голосов
/ 22 июля 2011

Допустим, мы используем объекты DTO для передачи данных между уровнем обслуживания и уровнем Presentation (MVC). В этом случае уровень представления может получить доступ только к объектам DTO. Поэтому мы не можем использовать ленивую загрузку в Entity Framework. Я здесь? Пожалуйста, дайте ваши предложения.

(Мой DTO не является сущностями в EF, и я внедрил шаблон хранилища и единицы работы)

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Вы можете использовать отложенную загрузку, но только на стороне службы, когда вы работаете с присоединенными объектами.

1 голос
/ 22 июля 2011

Прежде всего, сделайте правильное определение: ваши объекты DTO также являются вашими сущностями в EF 4.1?Являются ли они (также) вашими моделями и содержат ли они бизнес-логику?

Если это так, я бы рекомендовал отключить создание прокси (myDbContext.Configuration.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

...