CodeFirst实战:用文本数据库存档软件配置

简介:

背景:

复制代码
以前要写软件的时候,在编写用户配置这一块时,由于存档数据库不靠谱或大题小作,所以一般是存在文本中。
一开始是一个文件保存一个配置(图个File.Read与File.Write的操作简单)
由于软件经常升级,用户的配置也会不停的增加,又得兼容以前,又要新增加,之后的配置又用了分隔与换行来来保存多条配置。
重复多了之后,多少感觉到麻烦~~~
复制代码

 

解决:

所以,对于DBImport,你看早期的版本,对于用户的数据库链接,也没保存配置,说白了就是懒啊。
后来有用户反应要增加,加之CYQ.Data的文本数据库功能相对越来越完善,以及使用上也方便了,所以就增加上去了。

 

所以今天就以这个为实例,讲解一下是怎么方便法:

 

对于DBImport来说,有两个输入框,为了方便存档及下次启动,需要保存下并于下次启动时还原:

 

 

实战如下:

 

1:用入CYQ.Data.dll V5版本的。

2:CodeFirst编写个实体:

复制代码
  class Config : CYQ.Data.Orm.OrmBase
    {
         public Config()
        {
             base.SetInit( this" Config "" txt path={0};ts=0 ");
        }
         private  int ID{get;set;}
         private  string Key{get;set;}
         public  string Value{get;set;}
    }
复制代码

说明:

表名:Config;

{0}:代码根目录,即软件运行目录; 

ts=0:新增的识别参数,不创建Config.ts的表结构文件。 

 

3:接下来就是按钮点击事件成功后,把数据为链接保存:

复制代码
  // 保存链接字符串。
                     using (Config config =  new Config())
                    {
                         if (config.Fill( " key='ConnFrom' "))
                        {
                            config.Value = connFrom;
                            config.Update();
                        }
                         else
                        {
                            config.Key =  " ConnFrom ";
                            config.Value = connFrom;
                            config.Insert(InsertOp.None);
                        }
                    }
复制代码

如果链接已存在,就是更新,如果不存在,就是插入了。

 

4:软件初运行的时候检测数据是否存在,并设置初始值还原:

复制代码
    using (Config config =  new Config())
            {
                 if (config.Fill( " Key='ConnFrom' "))
                {
                    txtConnFrom.Text = config.Value.ToString();
                }
                 if (config.Fill( " Key='ConnTo' "))
                {
                    txtConnTo.Text = config.Value.ToString();
                }
            }
复制代码

 

5:一切就绪,F5运行后,软件目录下就多了一个文件(文本数据存存档json或xml格式数据):

 

 

这里提一下,如果文本数据库链接不指定ts=0,在同一目录下会创建数据库结构:

 

 

示例就到这里结束了。


对于CodeFirst,是支持所有数据库,但是又有些许区别:

复制代码

如果是对于sqlite,mssql,oracle,mysql等,由于数据是肯定是存到数据库的,所以CodeFirst编码运行后,肯定是会创建表结构到数据库中,才能存储数据。

意思就是,如果有数据库字段变化,可能需要到数据库里修改对应的字段;

而文本数据库,如果是增加或减少属性字段,则完全无事,如果是删除或修改字段名称,如果字段的数据不要,则也无事,如果原字段数据需要,自己打开事本,批量替换一下,也是相当方便。

复制代码

 


总体来说,个人觉的CodeFirst的操作方式,还是文本数据库来的实在与方便~~~ 而其它数据库,虽然如果中间变更,还是要变更,那就又回到CodeLast了。。。


版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/3213531.html

相关文章
|
监控 文件存储 对象存储
Synology群晖DS916+上启用阿里云同步CloudSync,备份资料就是爽!
有了她,再也不用担心数据没有及时备份了,群晖推出Cloud Sync,群晖+阿里云对象存储,建立完备、廉价的信息备份方案!
27875 1
|
3月前
|
存储 安全 开发工具
windows开发环境备份,再也不怕重装系统了
【9月更文挑战第2天】在Windows系统中备份开发环境可大幅提升重装系统后的效率。本文详细介绍五个关键步骤:备份开发工具及软件包;保存配置文件;备份数据库与数据文件;确保代码仓库的安全;记录安装步骤与注意事项。遵循这些建议,重装系统时可迅速恢复开发环境,避免重复劳动。
111 7
|
4月前
|
测试技术 数据安全/隐私保护 网络虚拟化
干货 | 如何用python实现每天定时备份交换机配置文件? 真香~
干货 | 如何用python实现每天定时备份交换机配置文件? 真香~
|
Windows
将指定文件夹纳入OneDrive同步:mklink命令
本文介绍利用mklink语言,使得OneDrive自动同步电脑中任意指定文件夹的方法~
525 1
将指定文件夹纳入OneDrive同步:mklink命令
|
缓存 Windows
CleanMyMac X1年期订阅Mac清理软件
mac电脑的很多文件都是隐藏的,因此很多人会误以为mac电脑很“干净”,实际上,mac电脑隐藏了很多垃圾文件,日积月累就会占用大量空间。现在就让我们了解一下mac电脑如何清理垃圾文件,同时也分享一下mac垃圾桶文件被清除了怎么恢复。
113 0
|
安全 网络安全 数据安全/隐私保护