我们使用NServiceBus和RavenDB作为持久性。
现在我们要将其更改为SQL Server。所以根据文档我改变了对NHibernatePersistence的持久性。现在我收到以下错误:
表MyInstanceOrderSagaData中的关联是指一个 未映射的类:My.Domain.Business.Order
配置是这样的: [代码]
public class EndpointConfig : IConfigureThisEndpoint
{
public void Customize(BusConfiguration configuration)
{
configuration.EndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"]);
configuration.UseTransport<MsmqTransport>();
configuration.UseSerialization<JsonSerializer>();
configuration.UsePersistence<NHibernatePersistence>();
}
}
[app.config中]
<appSettings>
<add key="ServiceBusEndpointName" value="MyOrdering.Saga" />
<add key="NServiceBus/Persistence/NHibernate/dialect" value="NHibernate.Dialect.MsSql2012Dialect" />
</appSettings>
答案 0 :(得分:0)
您需要记住NHibernate持久性使用动态映射为您的Saga数据类。因此,通常的事情适用于所有成员都需要是虚拟的,所有类必须具有int类型的Id属性,等等。
至于你的异常,我可以看到你的Saga数据包含一个类型的属性,它是你的My.Domain.Business.Order类型。此类未映射到NServiceBus NHibernate SessionFactory中。我会在你的Saga数据中严重避免任何与业务相关的引用。我建议你创建一个DTO类来存储你的Order数据,并改变SagaData类来代替它。