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 { get; set; }
publicint Age { get; set; }
publicstring Name { get; set; } = string.Empty;
publicstring[] Phone { get; set; }
publicbool IsActive { get; set; }
}
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(); // 關閉資料庫連線並釋放資源
總結與註意事項:
輕量級與嵌入式 :LiteDB是一個輕量級的嵌入式資料庫,非常適合桌面應用程式、移動應用程式或小型Web應用程式。
無伺服器依賴 :與SQLite相似,LiteDB不需要任何外部伺服器或行程。它直接讀寫磁盤上的檔。
NoSQL特性 :LiteDB支持文件儲存和查詢,類似於MongoDB等NoSQL資料庫。
效能最佳化 :為了提高查詢效能,可以在常用查詢欄位上建立索引。
數據完整性 :雖然LiteDB是一個輕量級資料庫,但它仍然支持事務和ACID內容(原子性、一致性、隔離性和永續性),確保數據的完整性和安全性。
跨平台相容性 :LiteDB是用C#編寫的,因此它可以在任何執行.NET的環境中執行,包括Windows、Linux和MacOS等作業系統。