使用 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.pswp.cn/news/281820.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281820.shtml
英文地址,請注明出處:http://en.pswp.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…

jQuary的相關動畫效果

第一種&#xff1a;該方法隱藏所有 <p> 元素&#xff1a; <html> <head> <script type"text/javascript" src"jquery.js"></script> <script type"text/javascript"> $(document).ready(function(){ $(&quo…

C# WPF 中使用 MahApps.Metro.IconPacks 提供的圖標

概述我們在桌面應用程序開發時經常會用到很多圖標&#xff0c;時常我是在阿里矢量圖庫下載&#xff1a;https://www.iconfont.cn/&#xff0c;然后存放多項目中去引用&#xff0c;不過這樣操作起來有點繁瑣&#xff0c;這節我們介紹一個更加便捷的方式.用法概述Wpf 圖標管理工具…

rails generator

generate 查找順序 rails/generators/initializer/initializer_generator.rb generators/initializer/initializer_generator.rbrails/generators/initializer_generator.rbgenerators/initializer_generator.rblib/templates/rails/helper/helper.rbcustomize your scaffold t…

java多線程同時運行_Java實現的兩個線程同時運行案例

本文實例講述了Java實現的兩個線程同時運行。分享給大家供大家參考&#xff0c;具體如下&#xff1a;/*** 兩個案例同時運行案例* 1:這個兩個線程并不是有規律的運行而是有沒有規律的交替運行*/package com.test3;public class Demo10_3 {/*** param args*/public static void …

通過幾個例子看sed的模式空間與保持空間

SED之所以能以行為單位的編輯或修改文本&#xff0c;其原因在于它使用了兩個空間&#xff1a;一個是活動的“模式空間&#xff08;pattern space&#xff09;”&#xff0c;另一個是起輔助作用的“暫存緩沖區&#xff08;holdingspace&#xff09;這2個空間的使用。 sed編輯器逐…

dotnet 用 SourceGenerator 源代碼生成技術實現中文編程語言

相信有很多伙伴都很喜歡自己造編程語言&#xff0c;在有現代的很多工具鏈的幫助下&#xff0c;實現一門編程語言&#xff0c;似乎已不是一件十分困難的事情。我利用 SourceGenerator 源代碼生成技術實現了一個簡易的中文編程語言&#xff0c;核心原理是將中文編程語言翻譯為 C#…

斷電后supervisor啟動時報錯

當設備意外斷電后&#xff0c;supervisor在系統啟動時報錯&#xff0c;導致程序假死&#xff0c;此問題可以用systemd來替換supervisor。轉載于:https://www.cnblogs.com/gaoyiping/p/6950470.html

Vue單頁面在ios10系統上出現白屏的bug

一個bug 你用Vue做了一個單頁面應用&#xff0c;它在一切設備上都工作正常&#xff0c;但是突然有一天&#xff0c;你的測試和你說&#xff0c;這個網站在iOS 10上跑不起來&#xff0c;怎么辦&#xff1f;于是你打開你電腦上的Chrome瀏覽器&#xff0c;工作正常&#xff1b;打開…

HTTP/2 規格制定完成

IETF HTTP工作者的負責人Mark Nottingham在其博客上宣布HTTP/2規格制定完成&#xff0c;接下來將是分配RFC編號和正式發表。HTTP是Web的核心技術之一&#xff0c;相比HTTP/1&#xff0c;HTTP/2的改進之處包括更快的頁面加載&#xff1b;更長久的連接&#xff1b;服務器推送&…

【習題 6-7 UVA - 804】Petri Net Simulation

【鏈接】 我是鏈接,點我呀:) 【題意】 在這里輸入題意 【題解】 模擬就好 【代碼】 /* 1.Shoud it use long long ? 2.Have you ever test several sample(at least therr) yourself? 3.Can you promise that the solution is right? At least,the main ideal 4.use the p…

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…

java用log.i打印數組_java-使用JSCH將ssh日志打印到列表(android)

我一直試圖通過將包含我目錄名稱的log.i字符串值添加到數組中,然后使用數組適配器通過listView打印它們,來在listView中的目錄中打印項目.但是,當我嘗試運行該應用程序時,它將打印包含目錄名稱的日志,但不會在listView上打印任何內容.有什么幫助嗎&#xff1f;這是我的代碼&…

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】我…