LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 Web 應用程式。
安裝 LiteDB 包
你可以通過 NuGet 包管理器來安裝 LiteDB:
Install-Package LiteDB
定義數據模型
定義一個 FileModel
類來表示文件信息:
using LiteDB;
namespace YourNamespace
{
[BsonCollection("files")] // 可以指定集合名稱
public class FileModel
{
[BsonId] // 標記為主鍵
public int Id { get; set; }
public string Path { get; set; }
}
}
數據訪問服務類
創建一個 FileServices
類來封裝對 LiteDB 的數據操作:
using LiteDB;
namespace UploadLogiData.LiteSql
{
/// <summary>
/// Logitech數據操作類
/// </summary>
public class FileServices
{
/// <summary>
/// 定義資料庫名稱,文件在當前程式目錄
/// </summary>
readonly string database = @"LogiDB.db";
/// <summary>
/// 打開一個表
/// </summary>
/// <returns></returns>
public ILiteCollection<FileModel> GetCollection(LiteDatabase db)
{
return db.GetCollection<FileModel>("Files");
}
/// <summary>
/// 插入數據(初始化)
/// </summary>
public void Initialize()
{
// 打開資料庫 (如果不存在則創建)
using (var db = new LiteDatabase(database))
{
var cg = GetCollection(db);
cg.Delete(1);
FileModel file = new FileModel
{
Id = 1,
Path = @"C:\Users\ch190006\Desktop\Loginet\logs",
};
cg.Insert(file);
}
}
/// <summary>
/// 根據主鍵查詢出配置單條數據
/// </summary>
/// <returns></returns>
public FileModel GetSingle(int id)
{
using (var db = new LiteDatabase(database))
{
var cg = GetCollection(db);
return cg.FindOne(p1 => p1.Id == id);
}
}
/// <summary>
/// 更新
/// </summary>
/// <param name="value">更新欄位</param>
public void UpdatePath(string value)
{
using (var db = new LiteDatabase(database))
{
var cg = GetCollection(db);
// //查詢到數據
var data = cg.FindOne(p1 => p1.Id == 1);
data.Path = value;
// 當中資料庫中查找到數據後,比如上面的data,可以直接修改後再更新。
cg.Update(data);
}
}
}
}
使用示例
using System;
namespace YourNamespace
{
class Program
{
static void Main(string[] args)
{
FileServices file = new FileServices();
file.Initialize();
file.UpdatePath(textLog.Text);
file.GetSingle(1).Path;
}
}
}
使用場景
- 桌面應用程式:LiteDB 非常適合用於桌面應用程式,因為它是一個嵌入式資料庫,可以輕鬆與應用程式一起打包和分發。它不需要單獨的資料庫伺服器,簡化了部署和配置
- 移動應用程式:由於 LiteDB 的輕量級和嵌入式特性,它也適用於移動應用程式。開發者可以在移動設備上存儲和檢索數據,而無需依賴遠程伺服器。
- 小型 Web 應用程式:對於需要輕量級數據存儲解決方案的小型 Web 應用程式,LiteDB 是一個不錯的選擇。它易於設置和使用,且性能良好。
- 原型設計和測試:在開發早期階段或進行原型設計時,使用 LiteDB 可以快速搭建數據存儲和檢索功能,而無需投入大量時間設置和維護複雜的資料庫系統。
- 一個賬戶/用戶一個資料庫的數據存儲
- 本地緩存:在某些情況下,開發者可能希望將數據緩存在本地以提高性能或減少網路延遲。LiteDB 可以作為這種本地緩存的解決方案。