简体   繁体   English

修改nHibernate如何在nServiceBus中保存Saga数据

[英]Modifying how nHibernate saves Saga data in nServiceBus

I'm having an issue where I'm sending a message to nServiceBus with a message data field of variable length. 我有一个问题,我正在向nServiceBus发送一条消息数据字段为可变长度的消息。 nServiceBus is using nHibernate to create a table called nServiceBus正在使用nHibernate来创建一个名为的表

[NServiceBus].[PendingMentorEmailSagaData] 

from a class called PendingMentorEmailSagaData . 来自一个名为PendingMentorEmailSagaData的类。 The message field is however getting set to nvarchar(255), I am looking for a way to have it set to nvarchar(MAX). 然而,消息字段被设置为nvarchar(255),我正在寻找一种方法将它设置为nvarchar(MAX)。

I've tried using an embedded hbm file, but am getting a " persistent class PendingMentorEmailSagaData not found " error. 我已经尝试使用嵌入式hbm文件,但是收到“ persistent class PendingMentorEmailSagaData not found ”错误。

This probably means I can't figure out what class to set the file too. 这可能意味着我无法弄清楚要设置文件的类。

The hbm file: hbm文件:

<?xml version="1.0" encoding="utf-8" ?>

    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      <class name="PendingMentorEmailSagaData">
        <id name="Id" />
        <property name="OriginalMessageId" />
        <property name="Originator" />
        <property name="PendingMentorEmailCommandId" />
        <property name="JobBoardCode" />
      </class>
    </hibernate-mapping>

PendingMentorEmailSagaData is the name of the saga's data class. PendingMentorEmailSagaData是saga数据类的名称。

  1. Create a PendingMentorEmailSagaData.hbm.xml file in the same project that the saga exists on, eg: 在saga存在的同一项目中创建PendingMentorEmailSagaData.hbm.xml文件,例如:
    <?xml version="1.0" encoding="utf-8"?>
    <hibernate-mapping xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:nhibernate-mapping-2.2">
      <class name="MY_NAMESPACE.PendingMentorEmailSagaData, MY_ASSEMBLY_NAME" table="PendingMentorEmailSagaData" dynamic-update="true" optimistic-lock="all">
        <id name="Id" type="Guid">
          <generator class="assigned" />
        </id>
        <property name="Originator" />
        <property name="OriginalMessageId" />
        <property name="LargeText" type="StringClob" />
      </class>
    </hibernate-mapping>

2. Mark that file as an Embedded Resource 2.将该文件标记为嵌入式资源

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM