2013-03-28 104 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

相關問題