pdi*_*ddy 32 .net c# entity-framework poco
使用POCO有什么好处?我不明白持久性无知的含义,这是什么意思?poco对象不能暴露像Save这样的东西?我无法绕过这个POCO,周围有很多嗡嗡声.
与EF生成的实体和POCO有什么区别?
Dat*_*han 45
POCO代表"Plain Old C#Object"或"Plain Old CLR Object",取决于你询问的对象.如果框架或API声明它在POCO上运行,则意味着它允许您以惯用方式定义对象模型,而无需使对象继承特定的基类.一般来说,在POCO上工作的框架允许您更自由地控制类的设计和实现,因为它们对正常工作的要求较少.
持久性无知意味着,尽可能地,在业务逻辑层或更高层运行的代码中的任何内容都不了解数据库的实际设计,您正在运行的数据库引擎,或者何时或何时从中检索或保留对象到数据库.在MEF的情况下,通过处理POCO并使用LINQ执行查询(即,不要求用户创建任何SQL查询来检索所需对象)来实现持久性无知.
这是一个悬而未决的问题,但人们普遍认为,在大多数情况下,域对象(或业务对象 - 无论哪种方式,上面提到的POCO)都应该不了解持久性逻辑.意思是MyBusinessObject.Save(),您有一个IO管理器或适配器类,而不是调用,然后调用Manager.Save(MyBusinessObject).通过这种方式,您可以避免在业务对象上暴露持久性语义 - 您可以通过这种方式更好地分离关注点.
| 归档时间: |
|
| 查看次数: |
31024 次 |
| 最近记录: |