IT评测·应用市场-qidao123.com技术社区

标题: c# LiteDB的基础用法 [打印本页]

作者: 自由的羽毛    时间: 2024-5-17 04:40
标题: c# LiteDB的基础用法
LiteDB 是一个轻量级的嵌入式 NoSQL 数据库,其计划理念与 MongoDB 雷同,但它是完全使用 C# 开发的,因此与 C# 应用程序的集成非常顺畅。与 SQLite 相比,LiteDB 提供了 NoSQL(即键值对)的数据存储方式,并且是一个开源且免费的项目。它适用于桌面、移动以及 Web 应用程序。
安装 LiteDB 包

你可以通过 NuGet 包管理器来安装 LiteDB:
  1. Install-Package LiteDB
复制代码
定义数据模子

定义一个 FileModel 类来表示文件信息:
  1. using LiteDB;  
  2.   
  3. namespace YourNamespace  
  4. {  
  5.     [BsonCollection("files")] // 可以指定集合名称  
  6.     public class FileModel  
  7.     {  
  8.         [BsonId] // 标记为主键  
  9.         public int Id { get; set; }  
  10.         
  11.         public string Path { get; set; }  
  12.     }  
  13. }
复制代码
数据访问服务类

创建一个 FileServices 类来封装对 LiteDB 的数据操纵:
  1. using LiteDB;
  2. namespace UploadLogiData.LiteSql
  3. {
  4.     /// <summary>
  5.     /// Logitech数据操作类
  6.     /// </summary>
  7.     public class FileServices
  8.     {
  9.         /// <summary>
  10.         /// 定义数据库名称,文件在当前程序目录
  11.         /// </summary>
  12.         readonly string database = @"LogiDB.db";
  13.         /// <summary>
  14.         /// 打开一个表
  15.         /// </summary>
  16.         /// <returns></returns>
  17.         public ILiteCollection<FileModel> GetCollection(LiteDatabase db)
  18.         {
  19.             return db.GetCollection<FileModel>("Files");
  20.         }
  21.         /// <summary>
  22.         /// 插入数据(初始化)
  23.         /// </summary>
  24.         public void Initialize()
  25.         {
  26.             // 打开数据库 (如果不存在则创建)
  27.             using (var db = new LiteDatabase(database))
  28.             {
  29.                 var cg = GetCollection(db);
  30.                 cg.Delete(1);
  31.                 FileModel file = new FileModel
  32.                 {
  33.                     Id = 1,
  34.                     Path = @"C:\Users\ch190006\Desktop\Loginet\logs",
  35.                 };
  36.                 cg.Insert(file);
  37.             }
  38.         }
  39.         /// <summary>
  40.         /// 根据主键查询出配置单条数据
  41.         /// </summary>
  42.         /// <returns></returns>
  43.         public FileModel GetSingle(int id)
  44.         {
  45.             using (var db = new LiteDatabase(database))
  46.             {
  47.                 var cg = GetCollection(db);
  48.                 return cg.FindOne(p1 => p1.Id == id);
  49.             }
  50.         }
  51.         /// <summary>
  52.         /// 更新
  53.         /// </summary>
  54.         /// <param name="value">更新字段</param>
  55.         public void UpdatePath(string value)
  56.         {
  57.             using (var db = new LiteDatabase(database))
  58.             {
  59.                 var cg = GetCollection(db);
  60.                 // //查询到数据
  61.                 var data = cg.FindOne(p1 => p1.Id == 1);
  62.                 data.Path = value;
  63.                 // 当中数据库中查找到数据后,比如上面的data,可以直接修改后再更新。
  64.                 cg.Update(data);
  65.             }
  66.         }
  67.     }
  68. }
复制代码
使用示例
  1. using System;  
  2.   
  3. namespace YourNamespace  
  4. {  
  5.     class Program  
  6.     {  
  7.         static void Main(string[] args)  
  8.         {  
  9.              FileServices file = new FileServices();
  10.              file.Initialize();
  11.              file.UpdatePath(textLog.Text);
  12.              file.GetSingle(1).Path;
  13.         }  
  14.     }  
  15. }
复制代码
使用场景


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4