一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
<h2 data-tool="mdnice编辑器">前言</h2><p data-tool="mdnice编辑器">今天给大家分享一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库:LiteDB。本篇文章主要是介绍LiteDB和在.NET中如何使用。</p>
<h2 data-tool="mdnice编辑器">LiteDB介绍</h2>
<p data-tool="mdnice编辑器"><strong>LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。</strong></p>
<ul class="list-paddingleft-1" data-tool="mdnice编辑器">
<li>无服务器的 NoSQL 文档存储</li>
<li>简单的 API,类似于 MongoDB</li>
<li>100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.3/2.0,以单个 DLL(不到 450KB)形式提供</li>
<li>线程安全</li>
<li>支持 ACID,完整的事务支持</li>
<li>写入失败后的数据恢复(WAL 日志文件)</li>
<li>使用 DES(AES)加密算法对数据文件进行加密</li>
<li>使用属性或流畅的映射器 API 将 POCO 类映射为 BsonDocument</li>
<li>存储文件和流数据(类似于 MongoDB 的 GridFS)</li>
<li>单一数据文件存储(类似于 SQLite)</li>
<li>对文档字段建立索引以实现快速搜索</li>
<li>支持 LINQ 查询</li>
<li>提供类似于 SQL 的命令来访问/转换数据</li>
<li>LiteDB Studio - 数据访问的精美用户界面</li>
<li>开源且免费供所有人使用,包括商业用途</li>
</ul>
<h2 data-tool="mdnice编辑器">LiteDB应用场景</h2>
<p data-tool="mdnice编辑器"><strong>可以在以下场景中使用 LiteDB:</strong></p>
<ul class="list-paddingleft-1" data-tool="mdnice编辑器">
<li>桌面/本地小型应用程序</li>
<li>应用程序文件格式</li>
<li>小型网站/应用程序</li>
<li>每个账户/用户数据存储一个数据库的情况</li>
</ul>
<h2 data-tool="mdnice编辑器">LiteDB项目源代码</h2>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109233900567-175048583.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">创建一个LiteDBCwTest控制台</h2>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109233914138-1041282677.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109233919361-2044784296.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">安装LiteDB包</h2>
<p data-tool="mdnice编辑器">搜索<code>LiteDB</code>包,点击安装。</p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109233955318-1140297132.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">定义Customer数据模型</h2>
<pre data-tool="mdnice编辑器"><code> public class Customer<br> {<br> /// <summary><br> /// Id<br> /// </summary><br> public int Id { get; set; }<br><br> /// <summary><br> /// Name<br> /// </summary><br> public string Name { get; set; }<br><br> /// <summary><br> /// Age<br> /// </summary><br> public int Age { get; set; }<br><br> /// <summary><br> /// Email<br> /// </summary><br> public string Email { get; set; }<br> }<br></code></pre>
<h2 data-tool="mdnice编辑器">LiteDB数据创建、插入、查询和删除</h2>
<pre data-tool="mdnice编辑器"><code>namespace LiteDBCwTest<br>{<br> internal class Program<br> {<br> static void Main(string[] args)<br> {<br> //创建或打开数据库文件<br> using (var db = new LiteDatabase(@"MyCustomerData.db"))<br> {<br> // 获取集合(相当于表)<br> var collection = db.GetCollection<Customer>("customers");<br><br> var customers = new List<Customer>()<br> {<br> new Customer<br> {<br> Name = "追逐时光者",<br> Age = 18,<br> Email = "17854545@gmail.com"<br> },<br> new Customer<br> {<br> Name = "大姚",<br> Age = 30,<br> Email = "16556545@gmail.com"<br> }<br> };<br><br> // 批量插入数据<br> collection.Insert(customers);<br><br> // 查询数据<br> var result = collection.FindAll();<br><br> foreach (var c in result)<br> {<br> Console.WriteLine($"Name: {c.Name}, Age: {c.Age}, Email: {c.Email}");<br> }<br><br> // 根据条件查询数据<br> var query = Query.EQ("Age", 30);<br> var resultByAge = collection.Find(query);<br><br> foreach (var c in resultByAge)<br> {<br> Console.WriteLine($"Name: {c.Name}, Age: {c.Age}, Email: {c.Email}");<br> }<br><br> // 删除数据<br> var deletedResult = collection.Delete(resultByAge.FirstOrDefault().Id);<br> }<br> }<br> }<br>}<br></code></pre>
<h3 data-tool="mdnice编辑器">创建成功的数据库文件</h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109234021349-322901108.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">LiteDB.Studio管理工具下载</h2>
<ul class="list-paddingleft-1" data-tool="mdnice编辑器">
<li>https://github.com/mbdavid/LiteDB.Studio/releases</li>
</ul>
<blockquote data-tool="mdnice编辑器">
<p>用于查看和编辑 LiteDB v5 文档的图形用户界面工具。</p>
</blockquote>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109234047699-1632071504.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">LiteDB.Studio管理数据</h2>
<h3 data-tool="mdnice编辑器">连接MyCustomerData数据库</h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109234149301-2142167517.png" alt="" loading="lazy"></p>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109234154178-2039133383.png" alt="" loading="lazy"></p>
<h3 data-tool="mdnice编辑器">查看customers表数据</h3>
<p><img src="https://img2024.cnblogs.com/blog/1336199/202401/1336199-20240109234208290-1939384276.png" alt="" loading="lazy"></p>
<h2 data-tool="mdnice编辑器">项目源码地址</h2>
<p data-tool="mdnice编辑器"><strong>更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。</strong></p>
<blockquote>
<p>GitHub源码地址:https://github.com/mbdavid/LiteDB</p>
<p>官方文档地址:https://www.litedb.org/api/</p>
</blockquote>
<h2 data-tool="mdnice编辑器">优秀项目和框架精选</h2>
<p data-tool="mdnice编辑器">该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(<code>让优秀的项目和框架不被埋没🤞</code>)。</p>
<blockquote>
<p>https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md</p>
</blockquote>
<h2 id="activity-name" class="rich_media_title ">DotNetGuide技术社区交流群</h2>
<ul>
<li>DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。</li>
<li>在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。</li>
<li>我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。</li>
</ul>
<blockquote>
<p id="activity-name" class="rich_media_title "><strong>欢迎加入DotNetGuide技术社区微信交流群👪</strong></p>
</blockquote>
</div>
<div id="MySignature" role="contentinfo">
<blockquote >
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者名称:</span>追逐时光者</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者简介:</span>一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。
</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Can-daydayup/p/17955585
頁:
[1]