除了更快的开发时间(据我所知,Visual Studio 2010 beta 2 没有用于构建 POCO 实体对象的 T4 模板),默认情况下,使用 Entity Framework 创建的传统 EntityObject 实体有什么优势吗?如果 Microsoft 提供了用于构建 POCO 对象的 T4 模板,我试图弄清楚为什么有人会想要使用传统方法。
问问题
1688 次
2 回答
6
你似乎同时问了两个问题。仅代码与模型优先和EntityObject
父类型与任意父类型。无论父类型如何,您都可以通过模型优先获得设计师支持。除了设计器支持之外,您还可以使用模型优先的预编译视图。这可以显着提高性能。
EntityObject
作为父对象可能比所谓的“POCO”(通常是代理基础,而不是“普通”对象)更具优势,因为实体的运行时类型是您期望的确切类型,而不是运行时生成的子类型.
此外,与其他对 LINQ 支持最少甚至没有的 ORM 不同,Entity Framework 具有丰富的 LINQ 支持,允许您投影到真正的POCO 类型上。因此,无需关心实体的基本类型是什么,就可以构建真正的持久性无知的演示文稿。您不会被 ORM 黑盒中的任何类型所困扰。
EntityObject
允许保留到数据库的私有属性。使用代理类型要求这些属性至少受到保护并且必须是虚拟的。因此,EntityObject
可以允许更好的封装。
顺便说一句,我并不是要暗示使用代理没有好处。我只是想回答你关于优点EntityObject
是什么的问题。
于 2010-01-13T14:00:57.163 回答
0
我认为唯一的好处是设计师的支持。找不到使用非 poco 实体的任何其他好处。
于 2010-01-13T12:15:01.423 回答