在NServicebus 5中切换到SQL Server后映射错误

时间:2015-01-19 10:51:57

标签: c# .net nhibernate nservicebus

我们使用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>

1 个答案:

答案 0 :(得分:0)

您需要记住NHibernate持久性使用动态映射为您的Saga数据类。因此,通常的事情适用于所有成员都需要是虚拟的,所有类必须具有int类型的Id属性,等等。

至于你的异常,我可以看到你的Saga数据包含一个类型的属性,它是你的My.Domain.Business.Order类型。此类未映射到NServiceBus NHibernate SessionFactory中。我会在你的Saga数据中严重避免任何与业务相关的引用。我建议你创建一个DTO类来存储你的Order数据,并改变SagaData类来代替它。