所以我的问题是非常与此相关的一个:Entity persitance inside Domain Events using a repository and Entity Framework?如何丝域事件处理程序中的多层应用
编辑:一个的话题更好的讨论也正在于此:Where to raise persistence-dependent domain events - service, repository, or UI?
然而,我的问题是相当简单和技术性的,假设我采取正确的方法。
让我们假设我有以下项目:
MyDomainLayer -> very simple classes, Persitence Ignorance, a.k.a POCOs
MyInfrastructureLayer -> includes code for repositories, Entity Framework
MyApplicationLayer -> includes ASP.Net MVC controllers
MyServicesLayer -> WCF-related code
MyWebApplication -> ASP.Net MVC (Views, Scripts, etc)
当引发事件(例如组成员已被授予), 那么两件事情应该做的(在两个不同的层):
- 留存数据(插入一个数据库中的新组成员记录)
- 创造所涉及的用户发送通知(UI相关的)
我要最后引用我在介绍中写了一个简单的例子:
领域层具有下面的代码:
public void ChangeStatus(OrderStatus status)
{
// change status
this.Status = status;
DomainEvent.Raise(new OrderStatusChanged { OrderId = Id, Status = status });
}
假设排气处理程序是在MyApplicationLayer(以能够与服务层交谈)。 它有以下代码:
DomainEvent.Register<OrderStatusChanged>(x => orderStatusChanged = x);
线路是如何发生的?我想是与结构图,但这个导入代码看起来如何?
荣誉eulerfx和丹尼斯,非常感谢你,这是一个架构的速成课程。我想我有一些功课要做,并阅读这个六角形建筑。非常感谢。 –