C#開發(fā)的輕量級LiteDB數(shù)據(jù)庫

LiteDB簡介
? ? ? ? 小型數(shù)據(jù)庫我一直使用SQLite。因為它是C語言開發(fā),所以在C#中使用略顯繁瑣。LiteDB是類似于MongoDB的輕量級嵌入式數(shù)據(jù)庫。因為它是完全使用C#開發(fā),所以集成在C#應(yīng)用程序中具有先天優(yōu)勢。和SQLite不同的是,LiteDB是NoSQL數(shù)據(jù)庫,也就是K/V數(shù)據(jù)庫,且完全開源、免費。除了可以在桌面應(yīng)用程序中使用外,它可以在移動、WEB應(yīng)用中使用。
LiteDB功能特性
無服務(wù)器 NoSQL 文檔存儲;
類似于 MongoDB 的簡潔 API;
支持 .NET 4.5 / NETStandard 2.0;
線程安全;
LINQ?查詢的支持;
具有完整事務(wù)支持的 ACID;
單文件存儲,類似于 SQLite;
存儲文件和流數(shù)據(jù);
LiteDB Studio -?數(shù)據(jù)查詢工具;
開源免費
? ? ? ? 從功能特性來看,LiteDB還是很強的,尤其難得的是支持并發(fā),這點連SQLite也不具備。但是LiteDB歷史較短,其穩(wěn)定性和可靠性還需要進(jìn)一步提升。下圖是我從網(wǎng)上找的LiteDB和SQLite性能測試對比。此圖中的數(shù)據(jù)我本人沒有實際驗證過,僅供大家參考。

使用入門
? ? ? ? 首先通過NuGet安裝最新的穩(wěn)定版LiteDB。

? ? ? ? 然后新建一個實體類。網(wǎng)上的文章連范例都懶的做,千篇一律照抄官方的Customer類。我們當(dāng)然不能這么干。這里我創(chuàng)建了一個上位機開發(fā)中用于記錄操作事件的EventModel類。
? ? ? ? 在窗體上添加三個按鈕,分別用于插入、修改和刪除數(shù)據(jù)。在插入按鈕的點擊事件中輸入下面代碼。
? ? ? ? 上面的代碼模擬了一次性插入10次操作的記錄數(shù)據(jù)。我們可以通過DataGridView控件可以查看數(shù)據(jù)庫中的數(shù)據(jù)。

? ? ? ? 另外LiteDB還提供了一個名為LiteDB Studio的可視化工具。我們也可以借助它查詢、操作數(shù)據(jù)。

? ? ? ? 雙擊修改按鈕,在其點擊事件中輸入下面代碼。
? ? ? ? 上面的代碼先查找操作事件是"這是第4次操作"的記錄,然后再將其修改為"這是第14次操作"。數(shù)據(jù)的刪除也很簡單。雙擊刪除按鈕,在其點擊事件中輸入下面代碼。
? ? ? ? 上面的代碼刪除了事件內(nèi)容為"這是第3次操作"的記錄。執(zhí)行后的數(shù)據(jù)如下。

? ? ? ? 通過簡單的增、刪、查、改我們得以初步了解LiteDB的使用。它確實夠輕量、夠簡單。是小型應(yīng)用程序的一個不錯的選擇。