摘要:
模块的概念 模块可以理解成系统中一个独立的功能。例如缓存Redis、队列RabbitMQ、IOC框架Autofac。 模块的作用 使用ABP模块可以解决模块之间的依赖问题,通过模块化设计,每个模块可以独立开发、测试和部署,从而减少代码的耦合度,提高了代码的可维护性和复用性,同时使得应用程序更加容易扩 阅读全文
摘要:
事务工作单元=数据库事务+工作单元事务。 Controller [ApiController] [Route("[controller]")] public class BlogController : AbpController { private BlogAppService _blogAppS 阅读全文
摘要:
var blog = await _blogRepository.InsertAsync(ObjectMapper.Map<AddBlogInputDto, Blog>(inputDto)); //查询不到数据,返回null var newblog = await _blogRepository.F 阅读全文
摘要:
IHasConcurrencyStamp IHasConcurrencyStamp添加了由ABP框架管理的 ConcurrencyStamp 属性实现乐观并发。 实体类继承了 IHasConcurrencyStamp 以后,对该实体的更新就自动带乐观锁了。 ISoftDelete 实现逻辑删除功能, 阅读全文
摘要:
聚合根类(AggregateRoot) 聚合一般包括多个实体或者值对象,聚合根可以理解为根实体或者叫主实体。 BasicAggregateRoot AggregateRoot类继承自Entity类,TKey可以是GUID、Int、String类型等。 AggregateRoot 有其他属性来支持乐观 阅读全文
摘要:
作用 方便在应用服务层对IQueryable执行异步操作。 代码实现 var queryable = await _ordedrRepository.WithDetailAsync(x=>x.OrderItems); queryable = queryable.WhereIf(inputDto.Gu 阅读全文
摘要:
作用 以同步的方式运行异步方法。 代码实现 //无返回值的异步方法 public async Task GetDataNoResult() { await Task.CompletedTask; } //有返回值的异步方法 public async Task<bool> GetDataWithRes 阅读全文
摘要:
作用 实现按需加载、减少不必要的开销,提供应用程序性能。 避免服务出现循环引用问题。 应用范围 控制器 public class AController:AbpController { private AService _aService => LazyServiceProvider.LazyGet 阅读全文
摘要:
如何实现软删除数据查询过滤 实体类继承ISoftDelete接口后,查询获取到的返回结果将不包含已删除的数据。 如何关闭软删除数据过滤 全局方式关闭软删除数据过滤 EntityFrameworkCoreModule模块类中使用。 [DependsOn(typeof(AbpEntityFramewor 阅读全文
摘要:
方式一:为实体配置默认导航并设置includeDetails属性为true [DependsOn(typeof(AbpEntityFrameworkCoreMySQLModule))] public class EntityFrameworkCoreModule : AbpModule { publ 阅读全文