当前位置: 首页 > news >正文

工程机械 网站模板传媒公司的业务范围

工程机械 网站模板,传媒公司的业务范围,网上购物系统毕业设计,郑州做设计公司网站本文主要是使用异步方式#xff0c;体验 litedb 基本的 crud 操作。 LiteDB 是一款轻量级、快速且免费的 .NET NoSQL 嵌入式数据库#xff0c;专为小型本地应用程序设计。它以单一数据文件的形式提供服务#xff0c;支持文档存储和查询功能#xff0c;适用于桌面应用、移动… 本文主要是使用异步方式体验 litedb 基本的 crud 操作。 LiteDB 是一款轻量级、快速且免费的 .NET NoSQL 嵌入式数据库专为小型本地应用程序设计。它以单一数据文件的形式提供服务支持文档存储和查询功能适用于桌面应用、移动应用和小型 Web 应用等场景。 LiteDB 的主要特点包括 无服务器的 NoSQL 文档存储LiteDB 是一个嵌入式数据库无需独立服务器数据存储在一个单一文件中类似于 SQLite。简单易用的 APILiteDB 提供类似 MongoDB 的简单 API支持 LINQ 查询和 SQL-like 命令使得开发者可以轻松上手。线程安全和 ACID 事务支持LiteDB 支持线程安全操作和完整的 ACID 事务处理确保数据的一致性和完整性。数据恢复功能LiteDB 使用写前日志WAL机制来保证数据恢复能力即使在写入失败的情况下也能恢复数据。跨平台支持LiteDB 可以在 Windows、Linux 和 macOS 等多个平台上运行具有良好的跨平台兼容性。加密存储LiteDB 支持使用 DES 或 AES 加密算法对数据文件进行加密保障数据的安全性。文件和流数据存储LiteDB 支持存储文件和流数据类似于 MongoDB 的 GridFS 功能。开源免费LiteDB 是一个开源MIT项目任何人都可以使用和修改其代码并且完全免费包括商业用途。 LiteDB 的使用非常简单可以通过 NuGet 包管理器轻松安装并且提供了丰富的文档和示例代码帮助开发者快速上手。此外LiteDB 还提供了一个名为 LiteDB Studio 的图形用户界面工具方便用户管理和可视化数据库内容。 总之LiteDB 是一款功能强大、易于使用的 NoSQL 数据库解决方案适用于多种场景值得开发者关注和尝试。 使用 .NET CLI 创建一个控制台应用程序可以按照以下步骤进行 安装 .NET 9 SDK首先确保你已经安装了 .NET 9 SDK。你可以从官方网站下载并安装最新版本的 .NET SDK。 创建新的控制台应用程序使用 dotnet new console 命令创建一个新的控制台应用程序。这个命令会生成一个包含基本结构的项目文件夹。 dotnet new console -n LiteDBExample导航到项目目录进入刚刚创建的项目目录。 cd LiteDBExample运行应用程序使用 dotnet run 命令运行应用程序。 dotnet run基础控制台项目就创建好了丝滑般体验 接下来我们使用 litedb 提供的 nuget 包进行简单的封装构建出异步操作的 crud 方法 。 安装相关 nuget 包 Project SdkMicrosoft.NET.SdkPropertyGroupOutputTypeExe/OutputTypeTargetFrameworknet9.0/TargetFrameworkImplicitUsingsenable/ImplicitUsingsNullableenable/Nullable/PropertyGroupItemGroupPackageReference IncludeLiteDB Version5.0.21 /PackageReference IncludeLiteDB.Async Version0.1.8 /PackageReference IncludeMicrosoft.Extensions.DependencyInjection Version9.0.0 //ItemGroup/Project创建实体类型 Person public class Person {public Guid Id { get; set; } Guid.NewGuid();public string Name { get; set; } default!;public uint Age { get; set; } }定义仓储类规范IRepository using LiteDB;namespace LiteDBExample.Core.Interfaces;public interface IRepositoryTEntity where TEntity : class {TaskBsonValue AddAsync(TEntity entity);Taskint AddRangeAsync(IEnumerableTEntity entities);TaskIEnumerableTEntity GetAllAsync();TaskTEntity? GetByIdAsync(object id);Taskbool UpdateAsync(TEntity entity);Taskint UpdateRangeAsync(IEnumerableTEntity entities);Taskbool DeleteAsync(object id);Taskint DeleteRangeAsync(IEnumerableobject ids); }实现 PersonDbContext using LiteDB; using LiteDB.Async; using LiteDBExample.Core.Entities;namespace LiteDBExample.Data;public class PersonDbContext(string connectionString) : IDisposable {private readonly LiteDatabaseAsync _database new(connectionString);public TaskBsonValue AddAsync(Person person){var collection _database.GetCollectionPerson(people);return collection.InsertAsync(person);}public Taskint AddRangeAsync(IEnumerablePerson persons){var collection _database.GetCollectionPerson(people);return collection.InsertAsync(persons);}public TaskIEnumerablePerson GetAllAsync(){var collection _database.GetCollectionPerson(people);return collection.FindAllAsync();}public TaskPerson? GetByIdAsync(object id){BsonValue bsonId new(id);var collection _database.GetCollectionPerson(people);return collection.FindByIdAsync(bsonId);}public Taskbool UpdateAsync(Person person){var collection _database.GetCollectionPerson(people);return collection.UpdateAsync(person);}public Taskint UpdateRangeAsync(IEnumerablePerson persons){var collection _database.GetCollectionPerson(people);return collection.UpdateAsync(persons);}public Taskbool DeleteAsync(object id){BsonValue bsonId new(id);var collection _database.GetCollectionPerson(people);return collection.DeleteAsync(bsonId);}public Taskint DeleteRangeAsync(IEnumerableobject ids){var collection _database.GetCollectionPerson(people);return collection.DeleteManyAsync(a ids.Contains(a.Id));}public void Dispose(){_database.Dispose();} }定义 Person 类仓储IPersonRepository using LiteDBExample.Core.Entities; using LiteDBExample.Core.Interfaces;namespace LiteDBExample.Repositories;public interface IPersonRepository : IRepositoryPerson { }实现 Person 类仓储PersonRepository using LiteDB; using LiteDBExample.Core.Entities; using LiteDBExample.Data;namespace LiteDBExample.Repositories;public class PersonRepository(PersonDbContext context) : IPersonRepository {private readonly PersonDbContext _context context ?? throw new ArgumentNullException(nameof(context));public TaskBsonValue AddAsync(Person entity){return _context.AddAsync(entity);}public Taskint AddRangeAsync(IEnumerablePerson entities){return _context.AddRangeAsync(entities);}public TaskIEnumerablePerson GetAllAsync(){return _context.GetAllAsync();}public TaskPerson? GetByIdAsync(object id){return _context.GetByIdAsync(id);}public Taskbool UpdateAsync(Person entity){return _context.UpdateAsync(entity);}public Taskint UpdateRangeAsync(IEnumerablePerson entities){return _context.UpdateRangeAsync(entities);}public Taskbool DeleteAsync(object id){return _context.DeleteAsync(id);}public Taskint DeleteRangeAsync(IEnumerableobject ids){return _context.DeleteRangeAsync(ids);} }在 Program.cs 中应用 IPersonRepository using LiteDBExample.Core.Entities; using LiteDBExample.Repositories; using Microsoft.Extensions.DependencyInjection; using LiteDBExample.Data;namespace LiteDBExample;internal class Program {static async Task Main(string[] args){Console.WriteLine(Hello, LiteDB!);var services new ServiceCollection();ConfigureServices(services);using var serviceProvider services.BuildServiceProvider();var personRepository serviceProvider.GetRequiredServiceIPersonRepository();// 多个 Personvar newPeople new ListPerson{new Person { Name John Kiny, Age 16 },new Person { Name John Doe, Age 30 },new Person { Name Jane Smith, Age 28 },new Person { Name Alice Johnson, Age 35 }};try{Console.WriteLine( litedb Async Method Test);{// 添加单个 Personvar person new Person { Name Alice Array, Age 32 };var bsonId await personRepository.AddAsync(person);Console.WriteLine($bsonId{bsonId});// 查询单个 Personvar queryPerson await personRepository.GetByIdAsync(bsonId);Console.WriteLine($guid{queryPerson.Id}, {queryPerson.Name} is {queryPerson.Age} years old.);// 更新单个 Personperson.Age 1;person.Name Array;var updateCount await personRepository.UpdateAsync(person);Console.WriteLine($updateCount{updateCount});// 删除单个 Personvar deleteCount await personRepository.DeleteAsync(bsonId);Console.WriteLine($deleteCount{deleteCount});// 批量添加多个 Personint addRange await personRepository.AddRangeAsync(newPeople);Console.WriteLine($addRange{addRange});// 查询所有 Personvar people await personRepository.GetAllAsync();foreach (var p in people){Console.WriteLine($guid{p.Id}, {p.Name} is {p.Age} years old.);}// 批量更新多个 Personvar updatedPeople people.Select(p new Person { Id p.Id, Name p.Name, Age p.Age 1 });int updateRows await personRepository.UpdateRangeAsync(updatedPeople);Console.WriteLine($updateRows{updateRows});// 批量删除多个 Personvar idsToDelete new Listobject();foreach (var item in people.Select(p p.Id)){idsToDelete.Add(item);};var ids idsToDelete.AsEnumerable();int deleteRows await personRepository.DeleteRangeAsync(ids);Console.WriteLine($deleteRows{deleteRows});}Console.ReadLine();}catch (Exception ex){Console.WriteLine($An error occurred: {ex.Message});}}private static void ConfigureServices(IServiceCollection services){services.AddScopedIPersonRepository, PersonRepository();services.AddScopedPersonDbContext(provider new PersonDbContext(filenamelitedb_example.db));} }运行应用dotnet run 使用 LiteDB.Studio 工具查看 litedb 数据 当批量添加数据的时候查看数据信息如下 Grid 查看 Text 查看 从上图中可以看到 litedb_example.db 文件非常轻量大概 30kb 左右
文章转载自:
http://www.morning.bccls.cn.gov.cn.bccls.cn
http://www.morning.lgphx.cn.gov.cn.lgphx.cn
http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn
http://www.morning.nqbs.cn.gov.cn.nqbs.cn
http://www.morning.kfmnf.cn.gov.cn.kfmnf.cn
http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn
http://www.morning.brwnd.cn.gov.cn.brwnd.cn
http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn
http://www.morning.hyryq.cn.gov.cn.hyryq.cn
http://www.morning.bfmq.cn.gov.cn.bfmq.cn
http://www.morning.ccffs.cn.gov.cn.ccffs.cn
http://www.morning.qysnd.cn.gov.cn.qysnd.cn
http://www.morning.khyqt.cn.gov.cn.khyqt.cn
http://www.morning.c7623.cn.gov.cn.c7623.cn
http://www.morning.wqcz.cn.gov.cn.wqcz.cn
http://www.morning.rsdm.cn.gov.cn.rsdm.cn
http://www.morning.pyncm.cn.gov.cn.pyncm.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.ljmbd.cn.gov.cn.ljmbd.cn
http://www.morning.rqfkh.cn.gov.cn.rqfkh.cn
http://www.morning.rzczl.cn.gov.cn.rzczl.cn
http://www.morning.kszkm.cn.gov.cn.kszkm.cn
http://www.morning.hpspr.com.gov.cn.hpspr.com
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn
http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn
http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn
http://www.morning.mtrfz.cn.gov.cn.mtrfz.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.plwfx.cn.gov.cn.plwfx.cn
http://www.morning.bmrqz.cn.gov.cn.bmrqz.cn
http://www.morning.ptzf.cn.gov.cn.ptzf.cn
http://www.morning.hphrz.cn.gov.cn.hphrz.cn
http://www.morning.gkktj.cn.gov.cn.gkktj.cn
http://www.morning.sgtq.cn.gov.cn.sgtq.cn
http://www.morning.rgxn.cn.gov.cn.rgxn.cn
http://www.morning.wqsjx.cn.gov.cn.wqsjx.cn
http://www.morning.crkhd.cn.gov.cn.crkhd.cn
http://www.morning.hwlmy.cn.gov.cn.hwlmy.cn
http://www.morning.jjhng.cn.gov.cn.jjhng.cn
http://www.morning.kaweilu.com.gov.cn.kaweilu.com
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.rntby.cn.gov.cn.rntby.cn
http://www.morning.pmnn.cn.gov.cn.pmnn.cn
http://www.morning.kgtyj.cn.gov.cn.kgtyj.cn
http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn
http://www.morning.lctrz.cn.gov.cn.lctrz.cn
http://www.morning.kbntl.cn.gov.cn.kbntl.cn
http://www.morning.dyfmh.cn.gov.cn.dyfmh.cn
http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn
http://www.morning.pinngee.com.gov.cn.pinngee.com
http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn
http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn
http://www.morning.znqfc.cn.gov.cn.znqfc.cn
http://www.morning.pjxw.cn.gov.cn.pjxw.cn
http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn
http://www.morning.mltsc.cn.gov.cn.mltsc.cn
http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn
http://www.morning.bfnbn.cn.gov.cn.bfnbn.cn
http://www.morning.bhwz.cn.gov.cn.bhwz.cn
http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn
http://www.morning.rqbkc.cn.gov.cn.rqbkc.cn
http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn
http://www.morning.wrcgy.cn.gov.cn.wrcgy.cn
http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn
http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn
http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn
http://www.morning.fxzgw.com.gov.cn.fxzgw.com
http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn
http://www.morning.xknsn.cn.gov.cn.xknsn.cn
http://www.morning.xhwty.cn.gov.cn.xhwty.cn
http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn
http://www.morning.sldrd.cn.gov.cn.sldrd.cn
http://www.morning.ffhlh.cn.gov.cn.ffhlh.cn
http://www.morning.stpkz.cn.gov.cn.stpkz.cn
http://www.morning.rrms.cn.gov.cn.rrms.cn
http://www.morning.khxwp.cn.gov.cn.khxwp.cn
http://www.morning.phxns.cn.gov.cn.phxns.cn
http://www.morning.wfttq.cn.gov.cn.wfttq.cn
http://www.morning.mzmqg.cn.gov.cn.mzmqg.cn
http://www.tj-hxxt.cn/news/267217.html

相关文章:

  • 360兼容模式 网站变形北京网优化seo公司
  • 安卓系统是谁开发的盐城seo培训
  • 校园网站建设方案模板佛山网警
  • 网站建设与网络编辑综合实训课程指导手册青岛商城网站建设设计
  • 广告网站模板下载 迅雷下载不了济南建站推荐企汇优见效付款
  • 微博分享的网站怎么做网站出现乱码
  • 东莞网站制作电话免费建站源码
  • 小程序做视频网站青岛wordpress建站
  • 济南 网站 建设企业网站备案密码怎么找回
  • 贵阳市公共住宅投资建设集团官方网站中型网站开发语言
  • 温州专业网站建设推广wp打开wordpress
  • 网站服务器崩溃怎么办dz网站建设教程
  • 网站建站网站45133网站建设实验心得
  • 实用设计网站推荐wordpress猫咪主题
  • 做网站用虚拟主机还是服务器有什么教人做论文的网站吗
  • 如何让百度收录网站邢台视频推广
  • 仿淘宝网站模板一品在线视频观看
  • php网站开发过程专题探索网站开发模式特点
  • 企业网站设计 优帮云软件定制论坛
  • 手机建站服务WordPress数据库名要填什么
  • 网站建设费 什么科目宁波网站建设怎么做
  • 网页设计制作网站论文成都专业网站建设公司
  • 做英文网站需要哪些东西成都网站优化推广
  • app开发是什么专业多说评论插件对网站优化
  • 工厂弄个网站做外贸如何网站查询域名访问
  • 网络搭建是什么工作迈步者seo
  • 网站建设 碧辉腾乐分销系统开发哪家好
  • 做推文封面的网站小程序制作策划案
  • 网站地图生成seo网站排名优化教程
  • 单位网站建设费用软件研发项目管理系统