NHibernate中的自定义ID生成器

时间:2011-01-19 05:06:01

标签: nhibernate nhibernate-mapping identity

全部,

如何将generator class =“assigned”以及generator class =“native”的功能组合在一起。

在我的情况下某些情况我会有ID另一个案例我不知道ID。

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Acurus.Capella.Core.DomainObjects" assembly="User">
  <class name="UserLookup, Core" table="User_lookup" lazy="true">
    <id name="Id" column="User_ID">
      <generator class="assigned" />
    </id>


<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Acurus.Capella.Core.DomainObjects" assembly="User">
  <class name="UserLookup, Core" table="User_lookup" lazy="true">
    <id name="Id" column="User_ID">
      <generator class="native" />
    </id>

1 个答案:

答案 0 :(得分:1)

您可以使用IIdentifierGenerator中的代码编写自己的NHibernate.Id.Assigned实现,并且“native”的具体实现与您的数据库对应,例如NHibernate.Id.IdentityGenerator

但是,由于Ids 应该毫无意义,我不知道为什么在持久化实体之前你会“拥有ID”。