除了更快的开发时间(Visual Studio 2010 beta 2没有用于构建我知道的POCO实体对象的T4模板),使用Entity Framework创建的传统EntityObject实体是否有任何优势?如果微软提供了用于构建POCO对象的T4模板,我试图找出为什么有人想要使用传统方法。
答案 0 :(得分:6)
你似乎在同时问两个问题。仅代码与模型优先和EntityObject
父类型与任意父类型。无论父类型如何,您都可以通过模型优先获得设计器支持。除了设计器支持,您还可以使用模型优先的预编译视图。这可以显着提高性能。
将EntityObject
作为父级可以优于所谓的“POCO”(通常是代理库,而不是“普通”对象),因为实体的运行时类型是您期望的确切类型,而不是运行时生成的子类型。
此外,与其他支持LINQ最少甚至没有LINQ的ORM不同,实体框架具有丰富的LINQ支持,允许您{em}到真正的 POCO类型。因此,可以构建真正的持久性无知的演示,而无需关心实体的基本类型。您不会受到ORM黑盒中出现的任何类型的困扰。
EntityObject
允许持久保存到数据库的私有属性。使用代理类型要求这些属性至少受到保护且必须是虚拟的。因此,EntityObject
可以允许更好的封装。
EntityObject
的优点是什么的问题。
答案 1 :(得分:0)
我认为唯一的好处是设计师的支持。使用非poco实体时无法找到任何其他好处。