实体框架 – MVC3应用程序/服务层/存储库层/ POCO类/ EF4 – 问
我对这个整体设计理念是新的,在过去几个星期的阅读中,我收集了很多信息,但似乎分散和冲突。条款是混合的,我只是很困惑地围绕着这一点。
我使用的模式是这样的,并假设流程如下: MVC应用 查看模型 观看模型DTO的?它们是否包含简单的属性,如Name,AddressLine1,Address City等,或者它们应该包含复杂的属性,多个对象等。 是视图模型中的验证。如果是这样的话,它将像需要的字段,字段长度等一样进行验证。然后像用户名一样的验证已经存在,或者您需要与服务层中的其他对象进行交互? 视图模型可以包含从EF返回的POCO类,还是应该使用AutoMapper? 如果使用AutoMapper和DTO,DTO的POCO类的克隆? 您将映射到控制器,查看模型或下面的服务层? 服务 存储库 关于术语的问题 2)域模型是EF模型吗?我使用Model-First方法。 3)依赖注入 – 我应该用吗?我明白它是如何工作的,只是没有得到真正的好处。我在玩Ninject。 我认为社区将受益于某种wiki,其中包含所有代码示例的最佳做法。那里有什么东西吗?很多样本都很简单,而且很多微软的示例即使在声明时也不会使用这种模式。 提前感谢所有有和将会帮助我的人。 BTW – 我认为StackOverflow需要一点点,“Buy Me A Beer”按钮旁边的“Accept Answer”复选框:) 解决方法
可以被认为是控制器和视图之间的一种数据传输对象。
理想的简单属性,但也可以聚合其他视图模型,但没有模型(例如:EF模型)。
有两种类型的验证逻辑:进入服务层的业务验证(例如用户名已经存在),进入视图模型的UI验证(例如:username)。
没有EF在视图模型。视图模型是具有简单属性和其他复杂属性的POCO类,指向其他视图模型。他们还可以包含方法,以便正确格式化将在特定视图中呈现的数据,这些模型将用于此类数据。
不知道我明白这个问题。
控制器。
是。
如果您使用EF代码第一种方法,那么是,否则否(如果EF用EF特定属性和类别污染域名)。
是。
是的,但不要太过分。通常存储库用于CRUD操作。它应该包含业务逻辑的服务。
是。
这将取决于您对您正在工作的特定项目的领域逻辑的数量以及您可能从旧的项目或其他人工作过的任何现有域逻辑。
是的,一点没错。
它在应用程序的不同层次之间提供较弱的耦合,从而使其更容易在其他项目中进行单元测试和重用。
我同意。
我对此表示怀疑。
不能同意更多。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 通过programmming导入Ms Access数据
- 谈谈分布式事务之三: System.Transactions事务详解[上篇]
- asp.net-web-api – Web Api的动态连接字符串
- asp.net-web-api – 使用WebAPI和RavenDB进行基本会话处理
- 是否可以在ASP.NET 5的Web API中使用外部身份提供程序?
- asp.net-mvc – 如何手动创建简单的成员资格sql表?
- asp.net-mvc – 使用AJAX绑定时,在创建/更新后IEnumerable属
- 使用Asp.net核心将PDF返回到浏览器
- asp.net – IE在IIS7中打开脚本,打开静态压缩
- asp.net – 如何检查列表<>包含TimeSpan上的比较
- asp.net – ValidationAttribute类的RequiresVal
- 在ASP.NET中将HTML转换为PDF时保持CSS样式
- Chrome F12调试工具常用技巧
- asp.net-core – 在.net Core中使用NPoco
- asp.net – 防止百分比字符转换
- 使用HtmlAnchor或ASP.NET HyperLink作为导航页内
- asp.net-mvc-3 – Razor webgrid ajax分页和排序
- asp.net-mvc – ASP MVC – 有默认内容类型的任何
- asp.net-mvc – Ninject如何在ASP.NET MVC中创建
- asp.net-mvc – 确保每个控制器方法都有一个Vali