1

NHibernate 2 を使用しています。

次のような新しいテーブルを作成しました。

Table: CategoryDependency
CategoryDependencyId    CategoryId    ParentCategoryId
--------------------    ----------    ----------------
      0                 0                NULL - root
      0                 1                0
      0                 44               1

... 等々

CategoryDe​​pendencyId のゼロに注意してください。私はNHを初めて使用するので、これをSQL Server 2008テーブル定義でnullではないPKとして設定し、デフォルト値を0に設定します。そうしないと、デフォルトにしないとこのテーブルにデータを挿入できません明らかに、CategoryDe​​pendencyId に null を挿入できないと不平を言うからです。

それで、これは正しいですか?その後、NHibernate は引き続き CategoryDe​​pendencyId を上書きし、インクリメントします。

これを使用してインクリメントするように設定すると思います:

コードを実行すると、レコードが返されません。

<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace=".....our namespace is here" assembly="OurAssemblyNameIsHere">


    <class name="CategoryDependency" table="CategoryDependency">


          <id name="ID" type="int">
              <column name="CategoryDependencyId" />
              <generator class="increment" />

          </id>

        <property name="CategoryDependencyId" />
        <property name="CategoryId" />
        <property name="ParentCategoryId" />

    </class>

4

1 に答える 1

0

ID 生成が必要な場合は、 を使用しますidentity

incrementは別の意味であり、使用すべきではありません。

いずれにせよ、identity良い生成戦略でもありません。可能であれば、guid.combまたはを選択してhiloください。

于 2013-03-28T17:40:31.643 に答える