加载中…
个人资料
我学电脑
我学电脑
  • 博客等级:
  • 博客积分:0
  • 博客访问:18,251
  • 关注人气:13
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#开发的轻量级LiteDB数据库

(2023-08-08 20:06:11)
标签:

litedb数据库

分类: asp_.net_C#_Python_VS/Code

01

LiteDB简介

小型数据库我一直使用SQLite。因为它是C语言开发,所以在C#中使用略显繁琐。LiteDB是类似于MongoDB的轻量级嵌入式数据库。因为它是完全使用C#开发,所以集成在C#应用程序中具有先天优势。和SQLite不同的是,LiteDB是NoSQL数据库,也就是K/V数据库,且完全开源、免费。除了可以在桌面应用程序中使用外,它可以在移动、WEB应用中使用。

LiteDB功能特性

u  无服务器 NoSQL 文档存储;

u  类似于 MongoDB 的简洁 API;

u  支持 .NET 4.5 / NETStandard 2.0;

u  线程安全;

u  LINQ 查询的支持;

u  具有完整事务支持的 ACID;

u  单文件存储,类似于 SQLite;

u  存储文件和流数据;

u  LiteDB Studio - 数据查询工具;

u  开源免费


从功能特性来看,LiteDB还是很强的,尤其难得的是支持并发,这点连SQLite也不具备。但是LiteDB历史较短,其稳定性和可靠性还需要进一步提升。下图是我从网上找的LiteDB和SQLite性能测试对比。此图中的数据我本人没有实际验证过,仅供大家参考

C#开发的轻量级LiteDB数据库

图1 LiteDB和SQLite性能对比

02

使用入门

首先通过NuGet安装最新的稳定版LiteDB。

C#开发的轻量级LiteDB数据库

图2 安装LiteDB

然后新建一个实体类。网上的文章连范例都懒的做,千篇一律照抄官方的Customer类。我们当然不能这么干。这里我创建了一个上位机开发中用于记录操作事件的EventModel类。


internal class EventModel{    public int Id getset}    public DateTime DT { get; set; }          //日期时间    public string Operator { get; set; }      //操作员    public string Event { get; set; }         //事件描述    public string Remarks { get; set; }       //备注    public DateTime Timestamp { get; set; }   //时间戳}

在窗体上添加三个按钮,分别用于插入、修改和删除数据。在插入按钮的点击事件中输入下面代码。


//打开数据库,没有的话自动创建using (var db = new LiteDatabase(@"Data.db")){    //获取记录集,没有的话会自动创建    var lst = db.GetCollection("EventModel");
//模拟数据 List eventModels = new List(); for (int i = 0; i < 10; i++) { EventModel em = new EventModel(); em.DT = DateTime.Now; em.Operator = "HwLib"; em.Event = $"这是第{i + 1}次操作"; em.Remarks = string.Empty; em.Timestamp = DateTime.Now; eventModels.Add(em); }
//插入记录 lst.Insert(eventModels);}

上面的代码模拟了一次性插入10次操作的记录数据。我们可以通过DataGridView控件可以查看数据库中的数据。

C#开发的轻量级LiteDB数据库

图3 插入10个操作记录

另外LiteDB还提供了一个名为LiteDB Studio的可视化工具。我们也可以借助它查询、操作数据。

C#开发的轻量级LiteDB数据库

图4 LiteDB Studio

双击修改按钮,在其点击事件中输入下面代码。


using (var db new LiteDatabase(@"Data.db")){     var lst = db.GetCollection("EventModel");
EventModel em = lst.FindOne(x => x.Event == "这是第4次操作"); em.Event = "这是第14次操作"; lst.Update(em); }

上面的代码先查找操作事件是"这是第4次操作"的记录,然后再将其修改为"这是第14次操作"。数据的删除也很简单。双击删除按钮,在其点击事件中输入下面代码。


using (var db new LiteDatabase(@"Data.db")){    ILiteCollection lst = db.GetCollection("EventModel");
EventModel em = lst.FindOne(x => x.Event == "这是第3次操作"); lst.Delete(em.Id);}

上面的代码删除了事件内容为"这是第3次操作"的记录。执行后的数据如下。

C#开发的轻量级LiteDB数据库

图5 删除记录

通过简单的增、删、查、改我们得以初步了解LiteDB的使用。它确实够轻量、够简单。是小型应用程序的一个不错的选择。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有