當前位置: 妍妍網 > 碼農

C# LiteDB的基礎用法

2024-05-16碼農

LiteDB是一個輕量級的嵌入式NoSQL資料庫,與MongoDB的設計理念相似,但它完全由C#編寫,因此與C#應用程式的整合非常順暢。LiteDB提供了NoSQL(即鍵值對)的數據儲存方式,並且是一個開源且免費的計畫。以下是C#中使用LiteDB的基礎用法。

1. 安裝LiteDB包

首先,你需要透過NuGet包管理器來安裝LiteDB。在Visual Studio中,你可以右鍵點選你的計畫,選擇「管理NuGet程式包」,然後搜尋「LiteDB」並點選「安裝」。

2. 定義數據模型

在C#中使用LiteDB,你首先需要定義一個或多個數據模型。這些數據模型將以類的形式存在,並且每個類將代表資料庫中的一個集合。例如,你可以建立一個名為 Student 的類:

public classStudent
{
publicint Id { getset; }
publicint Age { getset; }
publicstring Name { getset; } = string.Empty;
publicstring[] Phone { getset; }
publicbool IsActive { getset; }
}

3. 連線資料庫及CRUD操作

連線資料庫

使用 LiteDatabase 類來連線或建立資料庫。如果資料庫檔不存在,LiteDB會自動建立它。

var db = new LiteDatabase(@"MyData.db");

建立集合

你可以使用 GetCollection<T> 方法來獲取或建立一個集合。在這個例子中,我們將獲取一個 Student 集合:

var col = db.GetCollection<Student>("student");

插入數據(Create)

使用 Insert 方法將數據插入到集合中:

var student = new Student() { Id = 1, Age = 18, Name = "Test", Phone = newstring[] { "8000-10001""1001-80801" }, IsActive = true };
col.Insert(student);

檢索數據(Read)

使用 Find FindAll FindOne 方法來檢索數據:

List<Student> list = col.Find(x => x.Age > 20).ToList(); // 查詢年齡大於20的學生列表
Student user = col.FindOne(x => x.Id == 1); // 查詢Id為1的學生資訊

更新數據(Update)

雖然LiteDB沒有直接的更新方法,但你可以透過檢索文件,修改其內容,然後使用 Update 方法來更新它:

var studentToUpdate = col.FindOne(x => x.Id == 1); // 獲取需要更新的學生資訊
if (studentToUpdate != null) {
studentToUpdate.Name = "Updated Name"// 修改內容
col.Update(studentToUpdate); // 更新資料庫中的記錄
}

刪除數據(Delete)

使用 Delete 方法來刪除數據:

var studentToDelete = col.FindOne(x => x.Id == 1); // 獲取需要刪除的學生資訊
if (studentToDelete != null) {
col.Delete(studentToDelete.Id); // 刪除指定Id的記錄
}

4. 建立索引以提高查詢效能(可選)

你可以在特定欄位上建立索引以提高查詢效能。例如,在 Id 欄位上建立一個唯一索引:

col.EnsureIndex(x => x.Id, true); // 在Id欄位上建立唯一索引,第二個參數指定索引是否唯一

5. 關閉資料庫連線

當你完成對資料庫的所有操作後,應該關閉資料庫連線以釋放資源。雖然LiteDB會在垃圾回收時自動關閉連線,但顯式關閉總是一個好習慣:

db.Dispose(); // 關閉資料庫連線並釋放資源

總結與註意事項:

  1. 輕量級與嵌入式 :LiteDB是一個輕量級的嵌入式資料庫,非常適合桌面應用程式、移動應用程式或小型Web應用程式。

  2. 無伺服器依賴 :與SQLite相似,LiteDB不需要任何外部伺服器或行程。它直接讀寫磁盤上的檔。

  3. NoSQL特性 :LiteDB支持文件儲存和查詢,類似於MongoDB等NoSQL資料庫。

  4. 效能最佳化 :為了提高查詢效能,可以在常用查詢欄位上建立索引。

  5. 數據完整性 :雖然LiteDB是一個輕量級資料庫,但它仍然支持事務和ACID內容(原子性、一致性、隔離性和永續性),確保數據的完整性和安全性。

  6. 跨平台相容性 :LiteDB是用C#編寫的,因此它可以在任何執行.NET的環境中執行,包括Windows、Linux和MacOS等作業系統。