NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。
整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。
开源地址:https://github.com/NewLifeX/X
如果说前面16篇讲的都是XCode的ORM功能,从这一篇开始,将超越ORM之外,从另一个角度讲解一个数据中间件!
有心的同学可以发现,每一个实体类都有实现一个IEntity接口,这就是实体接口。
实体接口IEntity,抽象实体对象的添删改存操作,支持访问脏数据和扩展属性!
日复一日的写添删改查,上进的同学会想,能不能把许多类似的操作给封装为通用函数?
这是对IEntity接口的扩展方法,新增时设置CreateTime,每次设置UpdateTime,然后Save保存。
IEntity支持通过名称读写字段属性(《数据脏》中有提到实体属性赋值的三种方法),支持脏数据和添删改,可以无需反射而实现各种封装。
IEntity主要构成:
实体工厂接口IEntityOperate,抽象提供实体类的元数据、查询、事务、设置!
实体类的各种元数据一般可以通过内嵌静态类Meta访问,也可以通过实体工厂接口IEntityOperate访问,以便于设计各种灵活功能。
实体工厂接口IEntityOperate主要构成:
场景一:从Http请求中读取数据并填充到实体属性
场景二:多个实体类要做修改日志,重载Insert/Update/Delete后调用以下方法,把实体对象中被修改(IsDirty有脏数据)的字段和数值拼成字符串写入日志表
XCode是一个开放性的数据中间件,为各公司团队打造自己的开发平台提供鼎力支持!
在这十多年的发展中,几乎所有使用XCode的公司团队,都根据团队情况和业务需要封装了自己的快速开发平台!