亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用 C# 和 LiteDB 嵌入式NoSQL 數(shù)據(jù)庫

admin
2024年8月13日 21:7 本文熱度 2102

LiteDB 是一個輕量、快速、嵌入式的 NoSQL 數(shù)據(jù)庫。它不需要服務器,適用于桌面、移動應用以及小型 Web API 項目,本人在一些小項目中比較喜歡使用。本文將介紹 LiteDB 的主要特點以及如何在 C# 中使用 LiteDB,通過完整的例子展示常見的數(shù)據(jù)庫操作。

LiteDB 主要特點

  • 無需服務器:LiteDB 運行于單一 DLL 中,不需要復雜的服務器配置。

  • 輕量級:數(shù)據(jù)庫文件小巧,適用于資源受限的環(huán)境。

  • 嵌入式:LiteDB 直接嵌入到應用程序中。

  • NoSQL:基于 BSON(二進制 JSON 序列化協(xié)議)存儲數(shù)據(jù)。

  • 簡單易用:通過簡單的 API 實現(xiàn) CRUD 操作。

  • 支持 LINQ:方便的數(shù)據(jù)查詢與操作支持。


安裝 LiteDB

首先,通過 NuGet 包管理器安裝 LiteDB??梢栽?Visual Studio 的包管理控制臺中輸入以下命令:

Install-Package LiteDB


或者在 .csproj 文件中添加以下包引用:

<PackageReference Include="LiteDB" Version="5.0.9" />

快速開始

我們將通過一個簡單的 C# 控制臺應用展示如何使用 LiteDB 實現(xiàn)基本的 CRUD(創(chuàng)建、讀取、更新、刪除)操作。

1. 創(chuàng)建實體類

首先,我們需要定義一個實體類。例如,我們要在數(shù)據(jù)庫中存儲用戶信息,定義如下:

public class User{    public int Id { get; set; }    public string Name { get; set; }    public string Email { get; set; }}

2. 插入數(shù)據(jù)

插入數(shù)據(jù)是基本的數(shù)據(jù)庫操作,我們首先創(chuàng)建 LiteDatabase 實例,然后獲取集合并插入數(shù)據(jù)。

private void btnInsert_Click(object sender, EventArgs e){    // 連接數(shù)據(jù)庫(若文件不存在會自動創(chuàng)建)    using (var db = new LiteDatabase(@"MyData.db"))    {        // 獲取 User 集合(若不存在會自動創(chuàng)建)        var users = db.GetCollection<User>("users");
       // 創(chuàng)建新的 User 對象并插入集合        var user = new User { Name = "John Doe", Email = "johndoe@example.com" };        users.Insert(user);
       Console.WriteLine("User inserted with Id: " + user.Id);    }}

3. 查詢數(shù)據(jù)

LiteDB 提供了簡單的查詢接口,可以使用 LINQ 查詢或通過 BsonExpression 指定查詢條件。

private void btnSearch_Click(object sender, EventArgs e){    // 連接數(shù)據(jù)庫    using (var db = new LiteDatabase(@"MyData.db"))    {        var users = db.GetCollection<User>("users");
       // 通過 Id 查詢單個用戶        var user = users.FindById(1);        if (user != null)        {            Console.WriteLine($"User found: {user.Name}, {user.Email}");        }
       // 使用 LINQ 查詢所有用戶        var allUsers = users.FindAll().ToList();        foreach (var u in allUsers)        {            MessageBox.Show($"User: {u.Name}, {u.Email}");        }    }}

4. 更新數(shù)據(jù)

可以根據(jù) Id 或其他條件查找并更新現(xiàn)有的記錄。

private void btnUpdate_Click(object sender, EventArgs e){    // 連接數(shù)據(jù)庫    using (var db = new LiteDatabase(@"MyData.db"))    {        var users = db.GetCollection<User>("users");
       // 通過 Id 查找用戶并更新        var user = users.FindById(1);        if (user != null)        {            user.Email = "john.doe@newdomain.com";            users.Update(user);
           MessageBox.Show("User updated");        }    }}

5. 刪除數(shù)據(jù)

可以根據(jù) Id 或其他條件刪除記錄。

private void btnDelete_Click(object sender, EventArgs e){    // 連接數(shù)據(jù)庫    using (var db = new LiteDatabase(@"MyData.db"))    {        var users = db.GetCollection<User>("users");
       // 通過 Id 刪除用戶        bool success = users.Delete(1);        if (success)        {            MessageBox.Show("User deleted");        }    }}

定義 IDataRepository 接口

首先,我們定義一個通用的 IDataRepository 接口。這使我們能夠以更抽象的方式處理數(shù)據(jù)存儲庫,并方便以后進行擴展。

public interface IDataRepository<T>{    void Insert(T entity);    T GetById(int id);    IEnumerable<T> GetAll();    void Update(T entity);    bool Delete(int id);}

實現(xiàn) UserRepository 類

接下來,我們實現(xiàn)一個 UserRepository 類來處理 User 實體的數(shù)據(jù)庫操作。UserRepository 類繼承 IDataRepository<User> 接口。

using LiteDB;using System;using System.Collections.Generic;
public class UserRepository : IDataRepository<User>, IDisposable{    private readonly LiteDatabase _database;    private readonly ILiteCollection<User> _usersCollection;
   public UserRepository(string databasePath){        _database = new LiteDatabase(databasePath);        _usersCollection = _database.GetCollection<User>("users");    }
   public void Insert(User entity){        _usersCollection.Insert(entity);    }
   public User GetById(int id){        return _usersCollection.FindById(id);    }
   public IEnumerable<User> GetAll()    {        return _usersCollection.FindAll();    }
   public void Update(User entity){        _usersCollection.Update(entity);    }
   public bool Delete(int id){        return _usersCollection.Delete(id);    }
   public void Dispose(){        _database?.Dispose();    }}

使用 UserRepository 類

有了數(shù)據(jù)倉儲類之后,我們可以在應用程序中使用 UserRepository 來進行User實體的數(shù)據(jù)庫操作。

private void btnRepository_Click(object sender, EventArgs e){    // 數(shù)據(jù)庫文件路徑    string databasePath = @"MyData.db";
   using (var userRepository = new UserRepository(databasePath))    {        // 插入數(shù)據(jù)        var newUser = new User { Name = "Jane Doe", Email = "janedoe@example.com" };        userRepository.Insert(newUser);        MessageBox.Show($"User inserted with Id: {newUser.Id}");
       // 查詢數(shù)據(jù)        var user = userRepository.GetById(newUser.Id);        if (user != null)        {            MessageBox.Show($"User found: {user.Name}, {user.Email}");        }
       // 更新數(shù)據(jù)        user.Email = "jane.doe@newdomain.com";        userRepository.Update(user);        MessageBox.Show("User updated");
       // 列出所有用戶        var allUsers = userRepository.GetAll();        foreach (var u in allUsers)        {            MessageBox.Show($"User: {u.Name}, {u.Email}");        }
       // 刪除數(shù)據(jù)        if (userRepository.Delete(user.Id))        {            MessageBox.Show("User deleted");        }    }}

結論

LiteDB 是一個非常實用且易于使用的嵌入式 NoSQL 數(shù)據(jù)庫,適用于小型項目和快速開發(fā)。在 C# 中使用 LiteDB 非常簡單且高效,通過簡單的 API,我們可以方便地進行數(shù)據(jù)存儲和查詢。本文介紹了 LiteDB 的基本特點,并通過完整的例子展示了如何進行 CRUD 操作,幫助開發(fā)者快速上手。


該文章在 2024/8/19 18:43:32 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved