1

我们正在使用 NHibernate 2。

我创建了一个新表,如下所示:

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

... 等等

注意 CategoryDe​​pendencyId 的零。我是 NH 的新手,所以我在 SQL Server 2008 表定义中将其设置为 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

如果要生成身份,请使用identity.

increment意味着不同的东西,不应该使用它。

无论如何,identity也不是一个好的生成策略。如果可以,请选择guid.combhilo

于 2013-03-28T17:40:31.643 回答