13

I eine Abbildung wie diese:Prevent Nhibernate Schema von auf Fremdschlüssel-Constraints zu erzeugen hat viel Beziehung

HasMany(x => x.Orders).KeyColumn("CustomerID"); 

, die eine Randbedingung wie diese verursacht durch Schema erzeugt werden:

alter table [CustomerOrder] 
    add constraint FK45B3FB85AF01218D 
    foreign key (CustomerID) 
    references [Customer] 

I habe versucht, .NotFound.Ignore() wie bei einem References() - Mapping hinzuzufügen, um die Constraint zu deaktivieren, aber das funktioniert nicht.

Kann eine Zuordnung definiert werden, die SchemaExport dazu zwingt, die Einschränkung nicht zu generieren?

Antwort

22

es herausgefunden:

HasMany(x => x.Orders).KeyColumn("CustomerID").ForeignKeyConstraintName("none"); 

in der Quelle begraben eine Überprüfung Schöpfung zu ignorieren ist, wenn der Name „none“

+2

Vielen Dank für die Entdeckung ist! Ich brauchte dies, um datenbankübergreifende Fremdschlüssel zu verhindern>. < Für nicht-fließende Benutzer: Fremdschlüssel = "keine" – Groxx

+2

In späteren Versionen von FluentNHibernate verwenden Sie '.ForeignKey (" none ")', um dies zu erreichen; '.ForeignKeyConstraintName()' ist keine Funktion mehr. –