![]() |
1
12
对我来说,使用EF4和Poco的一个主要原因是 需要 DTO的。我可以理解使用DTO来处理传统的EDMX文件,其中您的实体非常膨胀,但事实并非如此。 显然,您的POCO需要是可序列化的,但实际上不应该有任何特定于发送POCO实体的问题,这些问题也不会出现在DTO中。 |
![]() |
2
21
我相信我们在这里混合了两个彼此没有关系的定义。 DTO或数据传输对象是一种设计模式,您可以使用它在层之间传输数据,而且它们也没有行为。马丁·福勒很好地解释了这一点: http://www.martinfowler.com/eaaCatalog/dataTransferObject.html 另一方面,我们有poco或普通的旧clr对象。但是要谈论POCO,我们必须知道它从何处开始,即POJO或普通的Java对象。马丁·福勒和两个合伙人创造了这个词,他在这里解释了这个词: http://www.martinfowler.com/bliki/POJO.html 所以Poco可以有行为和你想要的一切。它们是你在日常基础上写的相同的普通类,它们只是给它们起了这个名字,用一种简单易记的方式来称呼它们。 在你的第二个问题中,我认为最好的方法和我一直追求的方法是将DTO从业务层发送到所有使用它的东西(例如:你的服务、网站、桌面应用、移动应用等)。这是因为在大多数情况下,它们没有行为,也不只是属性,因此它们重量轻,理想情况下可用于服务,当然,它们不会显示您的业务中的敏感数据。 也就是说,如果您打算使用DTO,我可以建议您下载EntitiesToDTOS,这是一个实体框架DTO到生成器,我刚刚在CodePlex上发布过,它是免费的、开源的。去 http://entitiestodtos.codeplex.com |
![]() |
3
1
我和上面的观点有点不同。 我相信DTO或ViewModel对于服务器层的外部仍然是必需的。 在实际应用中,有几个视图层只需要一个域对象,即几乎每个视图都需要多个域对象。 所有这些域对象都包装在一个DTO或ViewModel类中。 这就是为什么我坚持DTO或ViewModel仍然是必需的,即使它们是POCO。 |
![]() |
4
0
我会考虑将EF4实体、业务模型和视图模型集成到一起。例如,他们已经实现了现成的propertychanged。如果需要,分部类可以提供自定义功能。在我看来,用您自己的安全层镜像实体会造成不必要的工作和维护。 我相信商业逻辑和其他一切的分离。然而,在EF4的情况下,这项工作已经为您完成了。去发疯吧。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |