c# - 为什么 POCO 相对于 EF4、nHiberate 是一件好事

标签 c# entity-framework-4 poco

为什么在 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/

相关文章:

c# - Entity Framework 4.0 函数导入 - 为什么它没有在我的对象上下文中显示为方法?

.net - 基于POCO的多层.NET框架

.net - Entity Framework 4.1 - 如何获取生成的 poco 对象的列名

c# - ASP.NET 中的单选按钮

c# - 从 URL 获取 TIF 并将其移动到 C# 中的 Azure Blob 存储中

c# - Entity Framework 和 DBContext 问题

entity-framework - Entity Framework 上下文管理

orm - DDD中的数据访问层设计

c# - Azure服务总线: ReceiveMessagesAsync returns only a subset

c# - 如何将 c# 变量合并到 javascript 函数的参数中