所以我的問題是非常與此相關的一個: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和丹尼斯,非常感謝你,這是一個架構的速成課程。我想我有一些功課要做,並閱讀這個六角形建築。非常感謝。 –