2017-05-30 86 views
2

我正在使用Fluent Nhibernate。 映射類看起來如下:自動增量(身份)在Fluent NHibernate中不起作用

public class CategoryMap : ClassMap<Category> 
{ 

    public CategoryMap() 
    { 
     Id(x => x.CategoryId).UniqueKey("CategoryId").GeneratedBy.Increment(); 
     Map(x => x.CategoryName).Not.Nullable(); 

     References(x => x.ParentCategory).Column("ParentCategoryId").Nullable(); 
    } 
} 

這是創建表,正如我需要,但我SSMS眼前這類別編號不認同。

enter image description here

爲什麼自動增量(標識)不工作?

+0

那麼你回答了你自己的問題。自動增量不起作用,因爲該列是identity = no。當你創建表時,你需要將列屬性指定爲'IDENTITY([seed],[increment])',或者簡單地'IDENTITY'將默認爲(1,1)作爲種子/增量。 –

回答

2

使用Identity而不是Increment,並且您不需要指定UniqueKey,因爲主鍵必須是唯一的。

Id(x => x.CategoryId).GeneratedBy.Identity(); 

我不知道該用例是什麼遞增或最新的NHibernate的文檔人的生活,但你可以在第5.1.5.1這裏瞭解不同類型的ID生成的:http://nhibernate.info/doc/nhibernate-reference/mapping.html

+0

謝謝。這是作品! – Seva