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

39db705057b49376e55cf62b1255dfd1.png

2144727a6f8e97f395267e814138bf4c.gif

0e164567807a050b741a6955f64d683d.png

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具或组件,希望对您有用!

  简介  

LiteDB 是一个小型、快速、轻量级的 .NET NoSQL 嵌入式数据库,也就是我们常说的 K/V 数据库,完全用 C# 托管代码开发,并且是免费和开源的,Github Star 数近 7k。它非常适合在移动应用 (Xamarin iOS/Android)和小型的桌面/Web 应用中使用。

LiteDB 的灵感来自 MongoDB 数据库,所以它的 API 和 MongoDB 的 .NET API 非常相似。

功能特性

  • •  无服务器 NoSQL 文档存储

  • •  类似于 MongoDB 的简洁 API

  • •  支持 .NET 4.5 / NETStandard 2.0

  • •  线程安全

  • •  LINQ 查询的支持

  • •  具有完整事务支持的 ACID

  • •  单文件存储,类似于 SQLite

  • •  存储文件和流数据

  • •  LiteDB Studio - 数据查询工具

  • •  开源免费

  

如何使用

  1. 1. 在项目中使用 Nuget 安装 LiteDB。

  2. 2. 创建实体类

public class Customer
{public int Id { get; set; }public string Name { get; set; }public string[] Phones { get; set; }public bool IsActive { get; set; }
}
  1. 3. 打开数据库,如果不存在会自动创建。

using var db = new LiteDatabase(@"MyData.db");
  1. 4. 下面是一个增删改查的例子。

// 获取 Customers 集合
var col = db.GetCollection<Customer>("customers");  // 创建一个对象
var customer = new Customer
{Name = "John Doe",Phones = new string[] { "8000-0000", "9000-0000" },Age = 39,IsActive = true
};// 在 Name 字段上创建唯一索引
col.EnsureIndex(x => x.Name, true); // 数据插入
col.Insert(customer);// 数据查询 
List<Customer> list = col.Find(x => x.Age > 20).ToList(); 
Customer user = col.FindOne(x => x.Age > 20);// 数据删除 
col.Delete(user.Id);

另外LiteDB 还支持存储文件。

var storage = db.GetStorage<int>();// 上传文件storage.Upload(123, @"C:\Temp\picture-01.jpg");// 下载文件storage.Download(123, @"C:\Temp\copy-of-picture-01.jpg");


数据查询 - LiteDB.Studio

LiteDB.Studio 是一个用来查看和编辑 LiteDB 数据的 GUI 工具,并且支持 SQL 命令。

049496be90862b2763dec8f663ea3de0.png

项目地址

https://www.litedb.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序仿微信SlideView组件slide-view

微信小程序仿微信SlideView组件。 使用 1、安装 slide-view 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始&#xff0c;小程序支持使用 npm 安装第三方包。 npm install --save miniprogram-slide-view2、在需要使用 slide-view 的页面 page.json 中…

hibernate 环境搭建测试

对于hibernate的介绍&#xff0c;网络上一搜一堆&#xff0c;恐怕我写的也没前辈总结的好。这个博主总结的十分好,方便大家欣赏 http://blog.csdn.net/liujiahan629629/article/details/21442607 真正要掌握&#xff0c;还得需要自己动手&#xff0c;才能丰衣足食。所需jar包j…

C# WPF 中使用 MahApps.Metro.IconPacks 提供的图标

概述我们在桌面应用程序开发时经常会用到很多图标&#xff0c;时常我是在阿里矢量图库下载&#xff1a;https://www.iconfont.cn/&#xff0c;然后存放多项目中去引用&#xff0c;不过这样操作起来有点繁琐&#xff0c;这节我们介绍一个更加便捷的方式.用法概述Wpf 图标管理工具…

java多线程同时运行_Java实现的两个线程同时运行案例

本文实例讲述了Java实现的两个线程同时运行。分享给大家供大家参考&#xff0c;具体如下&#xff1a;/*** 两个案例同时运行案例* 1:这个两个线程并不是有规律的运行而是有没有规律的交替运行*/package com.test3;public class Demo10_3 {/*** param args*/public static void …

dotnet 用 SourceGenerator 源代码生成技术实现中文编程语言

相信有很多伙伴都很喜欢自己造编程语言&#xff0c;在有现代的很多工具链的帮助下&#xff0c;实现一门编程语言&#xff0c;似乎已不是一件十分困难的事情。我利用 SourceGenerator 源代码生成技术实现了一个简易的中文编程语言&#xff0c;核心原理是将中文编程语言翻译为 C#…

HTTP/2 规格制定完成

IETF HTTP工作者的负责人Mark Nottingham在其博客上宣布HTTP/2规格制定完成&#xff0c;接下来将是分配RFC编号和正式发表。HTTP是Web的核心技术之一&#xff0c;相比HTTP/1&#xff0c;HTTP/2的改进之处包括更快的页面加载&#xff1b;更长久的连接&#xff1b;服务器推送&…

easyui combobox java_Easyui的combobox实现动态数据级联效果

实现从数据库中动态获取对应的list集合&#xff0c;并在easyui的combobox中显示出来。实现的效果如下&#xff1a;1、数据库的表设计如图所示2、数据库中填写相关的数据&#xff0c;如图所示。如图所示【法律法规】是所属栏目&#xff0c;因此他的字段parentid是0。【中国公民出…

为什么应该默认将 Class 设为密封类?

前言最近在 dotnet/sdk 上看到一个 Issue&#xff0c;它提出了一个有趣的要求&#xff1a;默认情况下将类设置为密封类(Sealed)&#xff1f;什么是密封类&#xff1f;默认情况下&#xff0c;类是开放的&#xff0c;这意味着它是可以被继承的。例如&#xff1a;class BaseClass …

Spring工具类的使用

2019独角兽企业重金招聘Python工程师标准>>> Spring-core中提供了大量的工具类&#xff0c;常用的有StringUtils、ObjectUtils、NumberUtils、Base64Utils等&#xff0c;Spring工具类在spring-core.jar中的org.springframework.util包下。 org.springframework.util…

python作业高级FTP(第八周)

作业需求&#xff1a; 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额、不同用户配额可不同 5. 用户可以登陆server后&#xff0c;可切换目录 6. 查看当前目录下文件 7. 上传下载文件&#xff0c;保证文件一致性 8…

Edge 浏览器被爆存在 XSS 绕过漏洞

来自知名安全测试套件Burp Suite厂商PortSwigger的安全专家Gareth Heyes近日在微软Edge浏览器的内置XSS过滤器存在绕过漏洞&#xff0c;这就意味着尽管微软在Edge浏览器中进行了大量的安全策略部署&#xff0c;但用户浏览网页的时候依然有可能让攻击者通过这种方式在Edge浏览器…

来了!十大更新

面向 Windows 10 正式版用户&#xff0c;微软发布了 2022 年 10 月更新。Windows 10 版本 21H1 更新后操作系统内部版本升级至 Build 190432130/2132&#xff08;带外更新&#xff09;。Windows 10 版本 21H2 更新后操作系统内部版本升级至 Build 19044.2130/2132&#xff08;带…

使用ansible 批量分发SSH Key

先确保你电脑有ansible&#xff0c;我是mac的用brew安装,其他可用yum安装brew search ansiblebrew install ansible我已经安装好2.7了生成下自己的key&#xff0c;一路回车ssh-keygen -t rsa编辑host&#xff0c;添加需要增加ssh key的机器vi /etc/ansible/hosts【hostgroup】我…

使用Git简单笔记

这里只是作为简单的笔记整理&#xff0c;第一次使用的推荐先看一下廖大的教程&#xff0c;内容很多很细&#xff0c;可以边看边练、看不懂的地方先记着、争取七七八八看下来。 心情不佳的分割线 廖雪峰的git教程&#xff1a; https://www.liaoxuefeng.com/wiki/001373951630592…

部署站点支持Https访问的方法

1、申请公钥和私钥&#xff0c;放到服务器 2、编辑default配置文件 改为 加上证书路径 ps:泛域名支持admin.xxx.com、demo.xxx.com等等&#xff0c;而免费的Lets Encrypt仅支持www.xxx.com和xxx.com 整理自www.laravist.com转载于:https://www.cnblogs.com/lamp01/p/6952464.ht…

Hadoop/HDFS命令

Hadoop中文手册&#xff1a;http://hadoop.apache.org/docs/r1.0.4/cn/commands_manual.html 英文手册&#xff1a;http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html Hadoop fs命令 hadoop fs: 该命令可以用于其他文件系统&#x…

内置IOC容器ServiceCollection

.NetCore内置IOC容器ServiceCollection一、IOC介绍IOC&#xff1a;全名(Inversion of Control)-控制反转IOC意味着我们将对象的创建控制权交给了外部容器&#xff0c;我们不管它是如何创建的&#xff0c;我们只需要知道&#xff0c;当我们想要某个实例时&#xff0c;我们可以直…

React+Redux仿Web追书神器

引言 由于 10 月份做的 React Native 项目没有使用到 Redux 等库&#xff0c;写了一段时间想深入学习 React&#xff0c;有个想法想做个 demo 练手下&#xff0c;那时候其实还没想好要做哪一个类型的&#xff0c;也看了些动漫的&#xff0c;小说阅读&#xff0c;聚合资源的开源…

windows配置solr5.5.2(不通过tomcat,使用内置jetty)

一、windows下配置solr5.5.2(不通过tomcat,使用内置jetty) 第一步&#xff1a;安装Jdk1.7 Solr5.5好像只支持Jdk1.7及以上的版本&#xff0c;没亲测&#xff0c;solr6.0是只支持jdk1.8及以上的&#xff0c;下图为启动solr时的截图&#xff1a; 如何在windows环境下配置jdk及验证…

【C# Personal Handbook】运行环境

一、CLR、CLI、CTS、CLS、BCL、FCL简介CLI&#xff08;公共语言基础&#xff09;CLI是微软公司向ECMA提交的一份语言和数据格式规范&#xff0c;CLR是目前为止唯一一个公共语言基础的实现版本。CLI包括了公共类型系统&#xff08;CTS&#xff09;、公共中间语言&#xff08;CIL…