NHibernate 2 を使用しています。
次のような新しいテーブルを作成しました。
Table: CategoryDependency
CategoryDependencyId CategoryId ParentCategoryId
-------------------- ---------- ----------------
0 0 NULL - root
0 1 0
0 44 1
... 等々
CategoryDependencyId のゼロに注意してください。私はNHを初めて使用するので、これをSQL Server 2008テーブル定義でnullではないPKとして設定し、デフォルト値を0に設定します。そうしないと、デフォルトにしないとこのテーブルにデータを挿入できません明らかに、CategoryDependencyId に null を挿入できないと不平を言うからです。
それで、これは正しいですか?その後、NHibernate は引き続き CategoryDependencyId を上書きし、インクリメントします。
これを使用してインクリメントするように設定すると思います:
コードを実行すると、レコードが返されません。
<?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>