【发布时间】:2011-07-16 20:31:25
【问题描述】:
我有一个带有 POCO 域模型和 NHibernate 存储库层的 ASP.NET MVC 2 应用程序。我的域模型不知道我的视图模型,所以我使用自动映射器从视图模型转到实体,反之亦然。
当我将 WCF 引入我的项目时(后期需要),我开始不得不处理不连贯的对象。也就是说,我使用 NHibernate 从数据库中检索一个实体,一旦该实体被序列化,它就会断开连接,并且无论我是否打算使用它,都会加载每个子集合,这意味着我正在做很多不必要的数据库工作。
阅读后,我发现强烈建议您不要在域项目之外公开您的实体,而应该使用 DTO。
我明白其中的原因,但我无法弄清楚如何实现它。
我是否在 ASP.NET MVC 中从 viewmodel 映射到 DTO,通过服务层发送 DTO,并从 DTO 映射到服务层中的实体?我应该在哪里定义我的 DTO?
【问题讨论】:
标签: asp.net-mvc wcf domain-driven-design poco dto