实体框架 – 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 – 您何时会在Web自定义控件上使用Web用户控件?
- asp.net-mvc – 为什么WebViewPage在MVC3中是抽象的?
- asp.net-mvc – 如何跳过ActionFilter的操作执行?
- asp.net-mvc – ASP.NET MVC会话过期
- asp.net:如何在button onclick上使用eventargs进行参数传递
- asp.net-mvc – DotNetOpenAuth在ASP.NET MVC中的OAuth
- asp.net-mvc-3 – 将原始html转储到Telerik网格
- .net-4.0 – 从自定义IHttpHandler调用MvcHttpHandler.Exec
- ASP.Net在页面中的页面/控件上调用Dispose,还是必须这样做?
- asp.net – 直接将.aspx转换为.pdf [已关闭]
