【发布时间】:2011-06-07 06:00:13
【问题描述】:
是否有任何理由不在 saga 数据中重用 NServiceBus 消息 (IMessage)?我的意思是有这样的消息:
public class Order : IMessage
{
public virtual List<TillOrderLine> OrderLines { get; set; }
}
public class TillOrderLine : IMessage { ... }
然后在 saga 和 saga 数据中也使用它,如下所示:
public class OrderProcessingSaga :
Saga<OrderProcessingSagaData>,
IAmStartedByMessages<Order> { ... }
public class OrderProcessingSagaData : ISagaEntity
{
public virtual Guid Id { get; set; }
public virtual string Originator { get; set; }
public virtual string OriginalMessageId { get; set; }
// The message data is stored by the saga here.
public virtual Order Order { get; set; }
}
我意识到消息是由传输层 (MSMQ) 存储的,而 saga 数据与 saga 一起保存到 DB。它适用于我当前的用例,并且似乎更优雅地重用该类,而不是为消息创建一个,为 saga 存储创建另一个。
我想知道这种方法是否有任何问题?
【问题讨论】:
标签: nservicebus