前言:
这两天有点感冒状态,除了以前折腾 微博粉丝精灵 腾到三更,最近也在折腾个别工具到四更,偶尔心来心潮,赶紧写写文章,最近有很多朋友对CYQ.Data V5里的文本数据库感兴趣,这里就给大伙说下文本数据库技术原理,给大伙解下密。
CYQ.Data 框架的稳定与前进:
CYQ.Data 对于V4系列,版本号就在V4.55版本就不再提高了,主要是为了保留一个最稳定的版本,基本除了Bug修正,不会再有大于V4.N的版本号出现了。
而V5版本,这一两年来,事实上,代码改动相当大,内部类的结构也调整不少,由于功能的新增加导致和改动,被记录的就有四五十项,没记录的数不清了,不过V5在各项目中沉淀了也近一年了,稳定性也很强。
CYQ.Data 文本数据库:
对于文本数据库的应用,在原来的OAuth2 登陆组件,就应用上了,用户存储AccessToken和对应账号,不知道大伙注意到了没有。
CYQ.Data 文本数据库技术原理:
先看图片:
简单工程描述:
在这个项目中,主要是读取表结构,然后生成相应的枚举类,或实体类,同时需要保存用户的配置,根据配置名称,允许保存多个配置项,而且每次开启,需要还原用户最新的配置项。
用什么来保存配置?
在以前,我用了App.config来保存配置,当然也可以用Xml,ini文件,不过,代码写起来都相对比较费力,人总是在使用某些东西觉的费力麻烦的时候,就会出一种方案来解决它们,所以,文本数据库就是这样一种简单的方案。
下面用源码里的部分代码片断来解密文本数据库的本质:
这个简单的工程,事实包含了数据库基本的增删改查操作:
1:添加用户配置。
2:同配置名,更新用户配置。
3:删除用户配置(估计被我遗忘了,没加上这功能)
4:从所有配置中,查询出被标识为IsMain=true的数据,并还原为默认配置。
项目里建了一个ProjectConfig实体类,来个CodeFirst:
这实体多了一个ORM继承,让它具备ORM的基础功能:
构造函数要指定表名和数据库链接(可以是配置名,内部判断的依据是有没有空格,没空格则到web.config取,有空格当成链接)
实体类代码如下: