2016-07-21 11 views
0

Ich habe eine einfache Zuordnungsdatei:nHibernate und SQLServer: kann ich erklären Indizes aus der Abbildung, oder muss ich sie separat erstellen

<class name="Comment"> 
    <id name="ID" generator="increment" /> 
    <property name="KnowledgeID" /> 
</class> 

wo „KnowledgeID“ ist ein Fremdschlüssel an einen anderen Tisch. Ich möchte, dass dies aus Leistungsgründen indexiert wird. Ich weiß, dass ich einen Index in SQL Server Management Studio erstellen und verknüpfen sie durch ihren Namen:

<property name="KnowledgeID" index="IX_KnowledgeComment_ID" /> 

aber ich habe mich gefragt, ob ich das gleiche Ziel durch nHibernate Konfiguration erreichen kann.

Also, was ist eine gute Standardpraxis bei der Definition von Indizes für nHibernate-generierte Tabellen?

Antwort

1

Ja, Sie können Indizes oder eindeutige Einschränkungen mit nHibernate erstellen. Hier einige Syntax für eindeutige Einschränkungen mit Zuordnung von Code

public AgencyMap() 
{ 
    Property(x => x.Name, m => 
    { 
     m.UniqueKey("UC_AgencyName"); 
     m.Index("IX_AgencyName"); 
     m.NotNullable(true); 
    }); 
    Property(x => x.ORI); 

Hier ist ein Link zu einem Beispiel eines mehrspaltigen Index mit

How do I create an index over multiple fields using NHibernate 3.2 mapping by code?

+0

kann dies nur mit der Fluent-Syntax durchgeführt werden, oder es gibt eine Wie erreiche ich dasselbe mit XML-Mappings? –

+1

Ja. http://stackoverflow.com/questions/834565/how-to-create-a-multi-column-index-or-unique-constraint-with-nibernate – Fran