我已经看到很多关于将DTO映射到Domain Objects的问题,但我觉得他们没有回答我的问题.我之前使用过很多方法并有自己的看法,但我正在寻找一些更具体的东西.
情况:
我们有很多域对象.我们使用CSLA模型,因此我们的域对象可能非常复杂,并且包含自己的数据访问.你不想在线上传递这些.我们将编写一些新服务,以多种格式(.Net,JSON等)返回数据.出于这个(以及其他原因),我们还创建了一个精简的数据传输对象,以便在线路上传递.
我的问题是如何连接DTO和Domain对象?
我的第一反应是使用Fowler,DTO模式类型的解决方案.我已经多次看过这件事了,对我来说感觉很对.域对象不包含对DTO的引用.调用外部实体("映射器"或"汇编器")以从域对象创建DTO.通常在域对象端有一个ORM.这样做的缺点是"映射器"在任何真实情况下都会变得非常复杂,并且可能非常脆弱.
提出的另一个想法是域对象"包含"DTO,因为它只是一个精益数据对象.域对象属性将在内部引用DTO属性,如果需要,可以返回DTO.我可以看到没有问题,但感觉不对.我看过一些使用NHibernate的人似乎使用这种方法的文章.
还有其他方法吗?以上是值得使用的方式之一吗?如果是,如果没有,为什么?
感谢您提前了解任何信息.
快问题真的.
我目前正在使用asp.net MVC和实体框架构建一个站点.我有几个存储库,它们返回实体或实体列表.我发现在我的大多数页面中,我不得不从各种相关表中提取数据.只要我在查询中使用"include"加载相关实体,这是可以的 - 但这是一个好习惯吗?
创建一个自定义的viewmodel对象是否更好,它只包含我需要的信息,或者没有任何"错误"来拉动一个可能有5-6个表深度的对象图,只是为了在视图中显示你需要的内容?
如果这个问题没有多大意义,请道歉.我可能从根本上误解了应该如何使用模型:)
谢谢
观看此视频后,我想知道我是否使用了我的控制器.控制器到底应该包含什么?
对于我的博客,我有一个帖子控制器,它有方法:创建show list loadPost就像不喜欢
而我的帖子模型只有一些访问规则,验证规则和关系信息.网上有MVC应用程序的例子吗?