LiteDB是一个轻量级的嵌入式NoSQL数据库,与MongoDB的设计理念相似,但它完全由C#编写,因此与C#应用程序的集成非常顺畅。LiteDB提供了NoSQL(即键值对)的数据存储方式,并且是一个开源且免费的项目。以下是C#中使用LiteDB的基础用法。
1. 安装LiteDB包
首先,你需要通过NuGet包管理器来安装LiteDB。在Visual Studio中,你可以右键点击你的项目,选择“管理NuGet程序包”,然后搜索“LiteDB”并点击“安装”。
2. 定义数据模型
在C#中使用LiteDB,你首先需要定义一个或多个数据模型。这些数据模型将以类的形式存在,并且每个类将代表数据库中的一个集合。例如,你可以创建一个名为Student
的类:
public class Student
{
public int Id { get; set; }
public int Age { get; set; }
public string Name { get; set; } = string.Empty;
public string[] Phone { get; set; }
public bool 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 = new string[] { "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等操作系统。
文章转载自程序员编程日记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




