如何在nhibernate中从poid移动到hilo

时间:2011-05-20 09:36:29

标签: nhibernate

我遇到了很多陷入困境的麻烦。我收到了一些非常有用的feedback,表明这可能是我使用identity这是一个常规ID的副作用。我的申请规模合理。 20-30个实体。像这样做出重大改变是一个非常可怕的主张。所以非常感谢一些反馈

1)我需要做些什么来改变hilo。这个应用程序有很多数据。我需要做一些数据迁移吗?

2)是hilo正确的选择,guid是一个更容易的升级。

示例实体映射。我正在使用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>

1 个答案:

答案 0 :(得分:0)

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