标签:安装脚本 重置 同步数据 复杂条件 经验 异步 .com 开关 需求
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版]
标签:安装脚本 重置 同步数据 复杂条件 经验 异步 .com 开关 需求
原文地址:https://www.cnblogs.com/nnhy/p/xcode_initdata.html