共计 9 篇文章

Abp vNext 源码分析 - 8. 审计日志

一、简要说明 ABP vNext 当中的审计模块早在 **依赖注入与拦截器**一文中有所提及,但没有详细的对其进行分析。 审计模块是 ABP vNext 框架的一个基本组件,它能够提供一些实用日志记录。不过这里的日志不是说系统日志,而是说接口每次调用之后的执行情况(执行时间、传入参数、异常信息、请求 IP)。 除了常规的日志功能以外,关于 实体 和 聚合 的审计字段接口也是存放在审计模块当中的。 ...

在 ABP vNext 中编写仓储单元测试的问题一则

一、问题 新项目是基于 ABP vNext 框架进行开发的,所以我要求为每层编写单元测试。在同事为某个仓储编写单元测试的时候,发现了一个奇怪的问题。他的对某个聚合根的 A 字段进行了更新,随后对某个导航属性 B 也进行了变更,最后通过仓储提供的 UpdateAsync() 方法对变更的数据进行持久化。 结果再次查出来的时候,发现聚合根的 A 字段倒是更新了,但是导航属性 B 的内部字段没有进行变更。例如在下面的实例当中, ...

Abp vNext 源码分析 - 4. 工作单元

一、简要说明 统一工作单元是一个比较重要的基础设施组件,它负责管理整个业务流程当中涉及到的数据库事务,一旦某个环节出现异常自动进行回滚处理。 在 ABP vNext 框架当中,工作单元被独立出来作为一个单独的模块(Volo.Abp.Uow)。你可以根据自己的需要,来决定是否使用统一工作单元。 二、源码分析 整个 Volo.Abp.Uow 项目的结构如下,从下图还是可以看到我们的老朋友 IUnitOfWorkManager 和 IUnitOfWork ...

Abp 源码分析:七、工作单元的实现

0.简介 Abp 框架在其内部实现了仓储模式,并且支持 EF Core 与 Dapper 来进行数据库连接与管理,你可以很方便地通过注入通用仓储来操作你的数据,而不需要你自己来为每一个实体定义单独的仓储的实现,通用仓储包含了常用的 CRUD 接口和一些常用方法。 例如: public class TestAppService : ITransientDependency { private readonly IRepository<TestTable> ...