我们正在使用NHibernate 2.
我创建了一个新表,看起来像这样:
Table: CategoryDependency
CategoryDependencyId CategoryId ParentCategoryId
-------------------- ---------- ----------------
0 0 NULL - root
0 1 0
0 44 1
......等等
注意CategoryDependencyId的零。我是NH的新手,因此我在SQL Server 2008表定义中将其设置为不为空的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>
答案 0 :(得分:0)
如果您想要生成身份,请使用identity
。
increment
表示不同的东西,不应该使用它。
无论如何,identity
也不是一个好的生成策略。如果可以,请转到guid.comb
或hilo
。