领域事件,是领域内发生的事件引发别的操作,其他的类可以订阅这是事件。

接着上一篇,在testOrder 上实现一个接口  IEventHandler<EntityCreatingEventData<TestOrder>>

就是说TestOrder 这个类有Creating 发生的时候,就会引发这个事件的接口的执行。 public class Test : AggregateRoot, ICreationAudited,IEventHandler<EntityCreatingEventData<TestOrder>>    {        [NotMapped]

public class Test : AggregateRoot, ICreationAudited,IEventHandler<EntityCreatingEventData<TestOrder>>
{     
     public IRepository<Test> _repository { get; set; } public long? CreatorUserId { get; set; } public DateTime CreationTime { get; set; }
public string Name { get; set; }
public string Remark { get; set; } public void Create()
{
this.Name = "gg";
_repository.Insert(this);
}
public void HandleEvent(EntityCreatingEventData<TestOrder> eventData)
{
throw new NotImplementedException();
}
}
 public class TestOrder : AggregateRoot, ICreationAudited
{
[NotMapped]
public IRepository<TestOrder> _repository { get; set; }
public long? CreatorUserId { get; set; }
public DateTime CreationTime { get; set; } public string TestOrderName { get; set; } public string TestOrderRemark { get; set; } public void Create()
{
this.TestOrderName = "ggsss"; _repository.Insert(this);
}
TestOrder 的_repository.Insert(this); 执行的之后,也就是工作单元保存完毕,会触发领域事件的执行(Test HandleEvent)。这是默认事件。
 


Abp 领域事件简单实践 <一>的更多相关文章

  1. Abp 领域事件简单实践 <二>

    上一篇说的是仓储增删改 的时候会自动触发领域事件. 其实也可以随时触发. 现在在应用层触发. 应用层依赖注入 EventBus public void Trigger() { var e = new ...

  2. Abp 领域事件简单实践 <三> 自定义事件

    熵片用到的  EntityCreatedEventData<TEntity>,继承自EventData. 我们可以自定义事件: public class TestEvent: EventD ...

  3. Abp 领域事件简单实践 <四> 聚合根的领域事件

    聚合根有个 DomainEvents 属性. 首先聚合根是一个实体.这个实体的仓储有变化(增删改)的时候,会触发这个DomainEvents 里的事件.就像EventBus.Trigger一样. pu ...

  4. Abp领域事件(EventBus)源码解析

    Abp中使用EventBus来解耦领域中的业务逻辑,也是订阅-发布模式的一种实现.简单来说就是,当我触发一个事件,注册了这个事件的处理器就会被找到并执行. 先看看整体代码结构 其中Entities文件 ...

  5. 领域驱动模型DDD(二)——领域事件的订阅/发布实践

    前言 凭良心来说,<微服务架构设计模式>此书什么都好,就是选用的业务过于庞大而导致代码连贯性太差,我作为读者来说对于其中采用的自研框架看起来味同嚼蜡,需要花费的学习成本实在是过于庞大,不仅 ...

  6. ABP入门系列(19)——使用领域事件

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1.引言 最近刚学习了下DDD中领域事件的理论知识,总的来说领域事件主要有两个作用,一是解耦,二是 ...

  7. ABP(现代ASP.NET样板开发框架)系列之14、ABP领域层——领域事件(Domain events)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之14.ABP领域层——领域事件(Domain events) ABP是“ASP.NET Boilerplate P ...

  8. ABP框架 - 领域事件(EventBus)

    文档目录 本节内容: EventBus 注入 IEventBus 获取默认实例 定义事件 预定义事件 处理完异常 实体修改 触发事件 处理事件 处理基类事件 处理程序异常 处理多个事件 处理程序注册 ...

  9. ABP理论学习之事件总线和领域事件

    返回总目录 本篇目录 事件总线 定义事件 触发事件 处理事件 句柄注册 取消注册 在C#中,我们可以在一个类中定义自己的事件,而其他的类可以注册该事件,当某些事情发生时,可以通知到该类.这对于桌面应用 ...

随机推荐

  1. uboot自定义添加命令

    1.添加命令 1.u-boot的命令格式: U_BOOT_CMD(name,maxargs,repeatable,command,”usage”,"help") name:命令的名 ...

  2. OpenJudge计算概论-奥运奖牌计数

    /*===================================================================== 奥运奖牌计数 总时间限制: 1000ms 内存限制: 6 ...

  3. 记一次被DDoS敲诈的历程 糖果LUA FreeBuf 今天 0x01 背景

    记一次被DDoS敲诈的历程 糖果LUA FreeBuf 今天 0x01 背景

  4. SpringCloud学习成长之路 五 路由器网关

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...

  5. mybatis/tk mybatis下实体字段是关键字/保留字,执行报错

    实体如下: import com.fasterxml.jackson.annotation.JsonFormat; import com.xxx.web.bean.PagesStatic; impor ...

  6. Paper Mark2

    论文:CBAM: Convolutional Block Attention Module 论文链接 pytorch代码 论文:Approach for Fashion Style Recogniti ...

  7. C#登录SSH执行命令,下载文件

    前言 批量登录SSH执行命令 ,把应急响应中的日志文件下载回来. 代码实现 Renci.SshNet编译出DLL,引用. using System; using System.Collections. ...

  8. jenkins:构建机器为windows,部署机器为linux

    备份老的jar包 d=`date +"%Y%m%d-%H%M%S"` cd /home/eccore/app/uat -SNAPSHOT.jar steward-api--SNAP ...

  9. Flutter FutureBuilder异步请求列表示例

    Flutter的FutureBuilder列表示例 import 'package:flutter/material.dart'; import '../service/service_method. ...

  10. Spring 使用复选选按钮

    模型层需要提供数据选项,设置错误信息 关键代码 @NotNull @Size(min = 1, max = 5, message = "选择课程") private String[ ...