POCO的理解
POCO的名称有多种,pure old clr object、 plain ordinary clr object等 POCO的概念是指那些没有从任何类继承,也没有实现任何接口,更没有被其它框架侵入的C#对象
POCO的意义就在于它的简单和灵活性,因为他的简单和灵活,是得POCO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实 POCO与PO、VO的区别
POCO是指简单C#对象(Plain Old clr Objects、pure old java object 或者 plain ordinary clr object)。 PO是指持久对象(persistant object持久对象)。
VO是指值对象或者View对象(Value Object、View Object)。注意,本文的VO特指View Object。
持久对象实际上必须对应数据库中的entity,所以和POCO有所区别。比如说POCO是由new创建,由GC回收。但是持久对象是 insert数据库创建,由数据库delete删除的。基本上持久对象 生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库 Connection之中,Connnection关闭以后,持久对象就不存在了,而POCO只要不被GC回收,总是存在的。
由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POCO不同,起码PO相对于POCO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要 PO在使用上尽量和POCO一致,对于程序员来说,他们可以把PO当做POCO来用,而感觉不到PO的存在 POCO的扩展 POCO仅包含最简单的字段属性,没有多余的东西,它本质上就是一个普通的C# Object。 但是在POCO的基础上,能够扩展出不同的对象。 为POCO增加了持久化的方法(Insert、Update、Delete……)之后,POCO就变成了PO。 为POCO增加了数据绑定功能之后,POCO就变成了View Object,即UI Model。 为POCO增加业务逻辑的方法(比如单据审核、转帐……)之后,POCO就变成了Domain Model。 POCO还可以当作DTO使用。
最新文章
- Linux系统MySQL开启远程连接
- Android-自定义meta-data扩展数据
- Android保存图片到系统图库
- QT5删除隐藏目录+隐藏文件(使用Process::start函数调用系统命令,且等待到结束)
- C# 线程更新UI
- SQL某个字段在原内容上增加固定内容或replace查找替换内容
- logistic回归和probit回归预测公司被ST的概率(应用)
- Pycharm使用总结
- asp.net 建多个项目实现三层的实例——读取一张表中的记录条数
- IIS部署ASP.Net Core 502.5错误和解决
- tomcat中显示本地图片①(已解决)
- Back To Top
- Pulsar-Producer实现简介
- LeetCode(33):搜索旋转排序数组
- Mybatis七(MBG 逆向工程)
- 勒索软件Locky、Tesalcrypt等使用了新的工具躲避检测
- 苹果越狱后必备软件,总有你需要的!11月23日追加14个,支持【iOS4】
- Sketch插件新利器——使用Mockplus DS制作设计规范
- ssh免密登录配置方法
- ubuntu下安装mongo扩展
热门文章
- C#简单鼠标键盘钩子KMHook
- tcp与http协议 以及python的实现
- android studio编译包真机安装失败解决方案记录
- 3ds Max File Format (Part 2: The first inner structures; DllDirectory, ClassDirectory3)
- Java实现图形界面的三部曲及IDE中的窗口设计
- C++-hihoCode1545-小Hi和小Ho的对弈游戏[树上Nim]
- 洛谷P1583 魔法照片
- error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间 -- 原因可能是参数错误或者自定义函数名和库函数名冲突
- 训练20191007 2017-2018 ACM-ICPC Latin American Regional Programming Contest
- 访问windows共享无法分配内存问题解决