[NewLife.XCode]数据初始化
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode。
整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。
开源地址:https://github.com/NewLifeX/X (求star, 707+)
回到目录
开发需要
一般应用系统部署都需要安装脚本,建立数据表以及导入基础数据,才能跑起来。
在XCode中,“建立数据表”这一步由反向工程包揽,再辅以一个“导入基础数据”的功能即可。
此外,系统在初步配置的过程中,经常可能出现需要清空某些表,然后重置到“出厂数据”的状态,例如魔方的菜单初始化。
系统开发日益灵活,客户需求也越来越高,纯粹的“基础数据Insert脚本”已经不能满足要求,逐渐出现能够希望根据上下文环境决定初始化数据的需求。
XCode数据初始化功能,由此而生!
回到目录
数据初始化
在前面章节《XCode实体类详解》中提到,XCode生成的实体类,默认带有一个数据初始化模版,正是InitData方法。
XCode的初始化通过重载InitData方法实现,它将会在该实体类首次读写数据库之前执行。
尽管是异步执行,但主线程会阻塞3000ms等到数据初始化完成。因此,大部分实体类在首次使用的时候就有数据了。
Meta.Count用于判断该数据表中有没有数据,如果没有数据,才添加一些默认数据。
回到目录
高级初始化
初始化不等于就一定是插入数据,还可以做一些数据整理工作。
譬如Membership里面的角色类
角色类每次启动时,除了要检查初始化四个基本角色外,还需要异步检查清理已经删除的菜单资源,确保角色数据足够“纯正”!
因此,所谓数据初始化,就是在所有数据库操作之前,执行一些用户自定义操作!
回到目录
系列教程
NewLife.XCode教程系列[2019版]
增删改查入门。快速展现用法,代码配置连接字符串
数据模型文件。建立表格字段和索引,名字以及数据类型规范,推荐字段(时间,用户,IP)
实体类详解。数据类业务类,泛型基类,接口
功能设置。连接字符串,调试开关,SQL日志,慢日志,参数化,执行超时。代码与配置文件设置,连接字符串局部设置
反向工程。自动建立数据库数据表
数据初始化。InitData写入初始化数据
高级增删改。重载拦截,自增字段,Valid验证,实体模型(时间,用户,IP)
脏数据。如何产生,怎么利用
增量累加。高并发统计
事务处理。单表和多表,不同连接,多种写法
扩展属性。多表关联,Map映射
高级查询。复杂条件,分页,自定义扩展FieldItem,查总记录数,查汇总统计
数据层缓存。Sql缓存,更新机制
实体缓存。全表整理缓存,更新机制
对象缓存。字典缓存,适用用户等数据较多场景。
百亿级性能。字段精炼,索引完备,合理查询,充分利用缓存
实体工厂。元数据,通用处理程序
角色权限。Membership
导入导出。Xml,Json,二进制,网络或文件
分表分库。常见拆分逻辑
高级统计。聚合统计,分组统计
批量写入。批量插入,批量Upsert,异步保存
实体队列。写入级缓存,提升性能。
备份同步。备份数据,恢复数据,同步数据
数据服务。提供RPC接口服务,远程执行查询,例如SQLite网络版
大数据分析。ETL抽取,调度计算处理,结果持久化
[NewLife.XCode]数据初始化相关推荐
- [NewLife.XCode]数据层缓存(网站性能翻10倍)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- 【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www ...
- [NewLife.XCode]分表分库(百亿级大数据存储)
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...
- [NewLife.XCode]脏数据
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示 ...
- [NewLife.XCode]实体队列(多线程生产的大数据集中保存)
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 性能分布式NewLife.XCode对无限数据的支持
上周发布了<改进版CodeTimer及XCode性能测试>,展示了NewLife.XCode在性能上的表现.实际上NewLife.XCode是一个很平凡的ORM,只是在分页和缓存方面多下点 ...
- [NewLife.XCode]实体工厂(拦截处理实体操作)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- [NewLife.XCode]百亿级性能
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
- [NewLife.XCode]高级查询(化繁为简、分页提升性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
最新文章
- 用计算机解组合题,计算机组成原理试题解析5
- c语言程序设计论文结构,c语言顺序结构设计实验报告.docx
- python常用的日期时间模块
- 什么是raid 容错式磁盘阵列?
- HBuilder 模拟器连接默认端口
- DBA生存警示:防范频发的数据误删除操作
- 组件、局部的组件、表行组件、组件数据传递
- 创业者需要知道的50句话
- Pandas 中第二好用的函数是?
- 硬币支付问题(贪心策略)
- getCurrentSession与openSession的区别
- linux日常学习笔记
- 【数据结构 严蔚敏版】 排序基本操作
- 计算机网络实用技术教程txt,计算机网络实用技术教程
- html背景图片半透明写法,CSS实现背景图片透明而文字不透明效果的两种方法
- 深入理解栈(Stack)
- Linux中的远程连接
- Notion:笔记协同工具,使用教程
- 云服务器的防火墙有什么作用?
- 金融数据python分析实例_Python金融大数据分析-蒙特卡洛仿真