2013-03-28 103 views
1

我们正在使用NHibernate 2.如何在数据库设置为身份NHibernate的

我有我创建了一个新的表看起来像这样:

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> 

回答

0

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

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

无论如何,identity也不是一个好的发电策略。如果可以,请致电guid.combhilo

相关问题