2017-05-30 5 views
2

Ich verwende Fluent Nhibernate. Mapping Klasse sieht folgendermaßen vor:Automatisches Inkrement (Identität) funktioniert nicht in 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(); 
    } 
} 

Es ist erstellt Tisch wie ich brauche, aber in SSMS i Anblick, ist CategoryId nicht Identität.

enter image description here

Warum Autoinkrement (Identität) nicht funktioniert?

+0

Well beantwortete deine eigene Frage. Auto-Inkrement funktioniert nicht, da die Spalte identity = no ist. Wenn Sie die Tabelle erstellen, müssen Sie die column -Eigenschaft als 'IDENTITY ([seed], [increment])' angeben oder einfach 'IDENTITY' wird standardmäßig auf (1,1) als Seed/Inkrement gesetzt. –

Antwort

2

Verwenden Sie Identity statt Increment, und Sie müssen UniqueKey nicht angeben, da der Primärschlüssel eindeutig sein muss.

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

Ich bin mir nicht sicher, was der Anwendungsfall für Increment ist oder wo die neueste NHibernate Dokumentation Leben, aber Sie können über die verschiedenen Arten von ID-Generatoren in Abschnitt 5.1.5.1 hier lesen: Sie http://nhibernate.info/doc/nhibernate-reference/mapping.html

+0

Danke. Es ist funktioniert! – Seva

Verwandte Themen