asp.net-mvc – 域实体,DTO和查看模型
|
我有一个ASP.NET MVC 2应用程序与一个POCO域模型和一个NHibernate库层.我的域模型没有意识到我的视图模型,所以我使用automapper从viewmodel到实体和反之亦然. 当我向我的项目介绍WCF(迟到的要求)时,我开始处理断开的对象.也就是说,我使用NHibernate从数据库中检索一个实体,一旦该实体被序列化,它将被断开连接,并且每个子集合都被加载,而不管我是否计划使用它意味着我正在做很多不必要的数据库工作. 在阅读之后,我看到强烈建议您不要将您的实体暴露在您的域名项目之外,而应该使用DTO. 我看到这个原因,但我无法确定如何实现它. 在ASP.NET MVC中,将viewmodel映射到DTO,通过服务层发送DTO,并将DTO映射到服务层中的实体?我应该在哪里定义我的DTO? 解决方法我喜欢让我的服务层保持实体封装,并返回/接收只有DTO.我将服务合同和DTO保留在MVC项目和服务实施参考的单独的程序集中.在服务调用实现中,服务将dto映射到实体,然后根据需要与存储库和其他实体进行交互. 在应用程序/ mvc项目中,我有时会懒惰,只是使用DTO作为某些操作(特别是CRUDY)的模型.如果我需要一个投影或类似的东西,那么我将做一个视图模型,并在DTO和viewmodel之间用automapper等进行转换. 暴露你的实体是一个很多争论的话题.有些人会把它们推到视图/应用层.我宁愿把它们保留在服务层.我发现,当实体离开服务层时,您发现自己在与其进行交互的任何地方进行业务逻辑类型的处理,这些东西应该可能驻留在服务中. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC Web应用程序与ASP.NET Web应用程序
- asp.net-mvc-3 – 将nhibernate实体序列化为json错误:连接
- asp-classic – 你用什么来编辑和开发经典ASP
- asp.net – 通过MSMQ分离Web和数据库层是必要的还是过度的?
- asp.net – 剃刀视图引擎自动应用报价?
- OWIN上的CORS和访问/令牌导致“Access-Control-Allow-Origi
- 在ASP.NET MVC2创建方法中使用FormCollection的正确方法?
- asp.net-mvc-4 – 如何在ASP.NET MVC 4中从数据库填充下拉列
- asp.net-mvc – ASP.NET MVC在新窗口中打开pdf文件
- asp.net-mvc – 使用ASP.NET Identity 2.0 UserManagerFact
- asp.net-mvc – 使用自定义ASP.NET MVC IValuePr
- 如何在ASP.NET PreInit事件中获得控制权?
- 为什么ASP.NET MVC中的移动视图在不同的服务器上
- asp.net核心 – 为什么验证类型 – .NET Core中的
- asp.net-mvc – 与ASP.NET MVC等效的GetWebResou
- .net – 带有数据绑定控件的“无效的回发或回调参
- asp.net-mvc – 如何使用我的Error.cshtml视图中
- 使用ASP.NET MVC在JS文件中设置jQuery的ajax url
- asp.net – 将GridView导出到多个Excel工作表
- asp.net-mvc – 控制器的实例上的HttpContext在A
