为什么在 EF4、Linq2SQL 或任何其他数据映射技术中支持 POCO 如此重要?我理解 OO 意义上的 POCO 的概念,但是当涉及到 ORM 时,我还缺少其他东西吗?
编辑:我只是在 ORM 的上下文中添加我个人对 POCO 的定义: 它是一个由开发人员手工编码的类,而不是一个由 ORM 映射工具(如 Visual Studio 的 EF4 设计器)生成、扩充或注释的类。
如有错误请指正。
最佳答案
“POCO”意味着框架没有对实体对象施加不必要或违反直觉的约束——不需要使用代码生成器,不需要扩展框架提供的基类,广泛注释属性,或者必须这样做大多数情况下,编写的代码与类总是存储在内存中的代码不同。这样就无需担心在模型类之外持久化数据并减少认知开销。
将来自 NHibernate 或 EF Code First 的 POCO 定义与 Visual Studio 在没有 Code First 的情况下为 EF 生成的代码进行比较,并问问自己您更喜欢阅读和维护哪一个。 (例如,当浏览一个新的代码库时。)
关于c# - 为什么 POCO 相对于 EF4、nHiberate 是一件好事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863171/