- 2024-11-19quartz .net8微服务避免dbcontext异常示例
调整program.cs里注册QuartzJobService,去除掉原有框架内的QuartzCore文件夹中的Factorymiddlejob等方法//注册QuartzJobServicebuilder.Services.AddQuartz(q=>{varjobKey=newJobKey("Jobs");q.AddJob<InterAutoTicketing>(opts=>opts.WithIdentity(j
- 2024-09-30DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(3)
DDD领域驱动设计-谈谈Repository、IUnitOfWork和IDbContext的实践(3) 上一篇:《DDD领域驱动设计-谈谈Repository、IUnitOfWork和IDbContext的实践(2)》这篇文章主要是对 DDD.Sample 框架增加Transaction事务操作,以及增加了一些必要项目。虽然现在的IUnitOfWork实
- 2024-09-18C#如何使用SQLSugar进行数据库操作
在现代应用程序中,数据库操作是不可或缺的组成部分。SQLSugar是一个轻量级的ORM(对象关系映射)框架,能够帮助开发者以简单的方式进行数据库交互。本文将介绍如何在C#中使用SQLSugar进行数据库操作。一、什么是SQLSugar?SQLSugar是一个高性能、易于使用的ORM框架,支持多种数据库,包括
- 2024-07-25.NET 中使用依赖注入时,如果将 DbContext 注册为单例,会导致一些严重的问题
在.NET中使用依赖注入时,如果将DbContext注册为单例,会导致一些严重的问题。DbContext设计为一个短生命周期的对象,通常与一个请求(在Web应用中)或一个单元操作(在桌面应用中)相对应。以下是将DbContext注册为单例会导致的问题:1.线程安全问题DbContext不是线程安全的,将其注
- 2024-07-21读写分离实现方式
常见的.netcore代码层面的读写分离实现方式有以下三种:使用ORM框架的扩展或自定义实现注册多个DbContext:为每个数据库(主库和从库)注册一个DbContext实例,并在应用程序中根据操作类型(读或写)选择使用相应的DbContext。使用数据库工厂类:创建一个数据库工厂类(如IDatabaseFactory),该类
- 2024-07-02.Net Core Web Api 框架搭建简单步骤
1、建立.NetCoreWebApi项目2、新建相关类库项目3、在EFCORE项目中,创建DbContext 上下文实例,并将所有的实体类写入DbSet,在Program.cs中注入创建的DbContext 实力及配置数据库链接信息4、封装DbContext 仓储类Repository5、新建服务类及服务接口,继承仓储类进行数据增
- 2024-05-16避免DbContext同时在多个线程调用
下面这个微软官方文档阐述了,应该避免在多个线程上同时操作同一个DbContext:AvoidingDbContextthreadingissues其中有说到,在使用DbContext的代码中,所有的异步函数应该立即被await,否则会有极大概率抛出InvalidOperationException。这是因为一个DbContext实例不能被多个线程同时
- 2024-04-18自定义 AuthorizationMiddleware 的行为
在其它角色、策略权限验证后,系统再执行中间件,中间件成功后,最后才执行调用控制器方法。其它策略-》授权中间件-》控制器方法应用可以注册 IAuthorizationMiddlewareResultHandler,以自定义 AuthorizationMiddleware 处理授权结果的方式。应用可将 IAuthorizationMiddlewareRe
- 2024-04-14使用多个提供程序进行迁移 DbContext
使用多个上下文类型创建多个迁移集的一种方法是对每个提供程序使用一个DbContext类型classSqliteBlogContext:BlogContext{protectedoverridevoidOnConfiguring(DbContextOptionsBuilderoptions)=>options.UseSqlite("DataSource=my.db");}
- 2024-04-10Microsoft.EntityFrameworkCore.Tools
一、前言EntityFramework(后面简称EF)作为微软家的ORM,自然而然从.NETFramework延续到了.NETCore。Migration二、程序包管理器控制台为了能够在控制台中使用命令行来操作EF,需要先安装Microsoft.EntityFrameworkCore.Tools。安装Install-PackageMicrosoft.EntityFrameworkCore.T
- 2024-04-04年少不知EFCore好,错把SqlSugar当成宝
背景:依然记得我的第一份WebApi项目使用得是SqlSugar,当时还没有系统学习b/s这边的知识,跟着别人做项目用SqlSugar觉得非常方便,减少了自己手写ADO.Net的痛苦。但是今天发现这个EFCore也是巨好用啊,下面写一下他的简单使用。1、安装NuGet包--第一个是对应当前要使用的数据库
- 2024-04-03EF Core设计时 DbContext 创建
设计时DbContext创建本文内容从应用程序服务使用不带参数的构造函数从设计时工厂Args某些EFCoreTools命令(例如Migrations命令)要求在设计时创建派生的DbContext实例,以便收集有关应用程序实体类型及其如何映射到数据库架构的详细信息。在大多数情况下,由此创建的DbConte
- 2024-03-18迁移实体字段(迁移与回退) 迁移方式选择
在工作中有时会遇到在思考不周的情况下进行迁移,并应用到了数据库,找了一些方法,通过自己的实际测试,选择一种交友的方式使用例子,有2次迁移1、20240301075424_活动配置增加时间字段 2、20240314031411_测试新增字段---增加了1、方法一(推荐使用)实体新增字段:publicstring
- 2024-02-27DbContext配置解析
publicclassIdDbContext:IdentityDbContext<User,Role,long>{publicIdDbContext(DbContextOptions<IdDbContext>options):base(options){}protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder){
- 2024-02-23.Net Core Unit of Work 基于Entity Framework Core 封装的多数据源操作 (MySql版本)
先说一下UnitofWork是什么:UnitofWork(工作单元)是一种设计模式,通常用于管理数据库事务和持久化操作。它有助于确保数据操作的一致性和完整性,同时减少不必要的数据库操作,提高性能。在软件开发中,UnitofWork模式通常与Repository模式一起使用。下面是UnitofWork模式的
- 2024-02-22.Net Core Entity Framework Core 的基础封装
上篇讲到 c#UnitofWork知识分享时,对于创建DBContext的封装没有讲到,这次分享跟大家publicinterfaceIDbContextFactory{DbContextCreateDbContext(stringconnectionString);}///<summary>///这里实现的思路是根据用户输入的代码来决定链接的是哪个数据库
- 2024-01-24SqlSugar DbContext
前言什么是SqlSugar?SqlSugar是.NET/C#平台非常优秀的ORM框架,目前Nuget总下载突破1000K,Github关注量也高达3.7KSqlSugar拥有高性能,具有百万级插入、更新大数据分表等特色功能,是目前当之无愧的国产优秀ORM框架之一。支持MySql、SqlServer、Sqlite、Oracle、pos
- 2023-11-15.NET7 使用DbContext 连接SqlServer数据库
- 2023-10-30DbContext相关
DbContext是线程不安全的,单列模式下,前一个sql为执行完,后一个不会执行。所有要做成作用域单列,一次请求是单列的。
- 2023-10-29DbContext&Repository基本实现
前言对于仓储模式,各有看法不同,直接使用DbContext简单方便,使用仓储模式扩展复用较好。受限于场景的差异,人员技能熟悉程度,交付时间,成本等选择哪种方式也有不同。Controller&DbContext当需要快速设计一个访问数据库Demo时,顺手便是Controller+DbContext,当然还有其他更为简便的方式
- 2023-10-13EF使用linq和lamda实现sql查询的内连接(inner join)和左连接(left join)
背景介绍:1.OperateLogInfo:日志表2.SystemUserInfo:用户表需求:查询日志表,要根据日志表的创建人id查询出创建人姓名(日志表连接用户表)publicstaticstringTest(){stringresult=null;varsqlLogs=newList<string>();
- 2023-10-09entity-framework 'scaffold-dbcontext' 未被识别为 cmdlet、函数、脚本文件或可操作程序的名称
//出现此错scaffold-dbcontext:Theterm'scaffold-dbcontext'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.Checkthespellingofthename,orifapathwasincluded,verifythatthepathiscorrectandtry
- 2023-10-08造轮子之ORM集成
Dotnet的ORM千千万,还是喜欢用EFCORE前面一些基础完成的差不多了,接下来可以集成数据库了,官方出品的ORM还是比较香。所以接下来就是来集成EFCORE。安装包首先我们需要安装一下EFCORE的NUGET包,有如下几个:Microsoft.EntityFrameworkCore.ProxiesMicrosoft.EntityFrameworkC
- 2023-09-21使用MediatR库简化.NET应用程序中的CQRS实现
本文介绍了如何使用MediatR库简化.NET应用程序中CQRS(命令查询职责分离)模式的实现。我们将通过一个具体的业务场景来演示如何使用MediatR库,以及它带来的好处。引言CQRS(命令查询职责分离)是一种架构模式,它将一个对象的命令操作(例如创建、更新和删除)与查询操作(如读取和搜索)分离开来
- 2023-09-19使用CQRS和Event Sourcing实现高性能.NET应用程序
摘要本文介绍了如何使用CQRS(命令查询职责分离)和EventSourcing在.NET应用程序中实现高性能和可扩展性。我们将在一个具体的业务场景中应用这些模式,以演示它们如何解决实际问题。引言随着业务的发展和用户需求的增加,我们作为.NET程序员需要考虑如何提高应用程序的性能和可扩展性