如何在nhibernate中从poid移动到hilo

如何在nhibernate中从poid移动到hilo,nhibernate,Nhibernate,我遇到了很多死锁问题。我收到一些非常有用的建议,这可能是我使用常规id的副作用。我的应用程序大小合理。20-30个实体。做出这样的重大改变是一个相当可怕的提议。因此,我非常感谢您的反馈 1) 我需要做什么才能换成hilo。这个应用程序有相当多的数据。我需要做一些数据迁移 2) 如果hilo是正确的选择,升级会更容易 实体映射示例。我用的是nhibernate 2 <class name="Post" table="Post"> <id name="Id" type="I

我遇到了很多死锁问题。我收到一些非常有用的建议,这可能是我使用常规id的副作用。我的应用程序大小合理。20-30个实体。做出这样的重大改变是一个相当可怕的提议。因此,我非常感谢您的反馈

1) 我需要做什么才能换成hilo。这个应用程序有相当多的数据。我需要做一些数据迁移

2) 如果hilo是正确的选择,升级会更容易

实体映射示例。我用的是nhibernate 2

<class name="Post" table="Post">
    <id name="Id" type="Int32" column="Id" unsaved-value="0">
      <generator class="identity"/>
    </id>

    <many-to-one name="Company" column="CompanyId"   class="EStore.Domain.Model.Company, EStore.Domain" />
    <many-to-one name="Retailer" column="RetailerId"   class="EStore.Domain.Model.Retailer, EStore.Domain" />
    <many-to-one name="Parent" column="ParentId"   class="EStore.Domain.Model.Post, EStore.Domain" />
    <many-to-one name="PostStatus" column="PostStatusId"   class="EStore.Domain.Model.PostStatus, EStore.Domain" />
  </class>

highlow需要high(表格或序列)的源,并计算Low值。 您需要一个序列/表,其值*maxlowvalue(您在映射中定义的值)大于数据库/表中的最高id(如果您为每个表指定不同的高值序列/表)