ich eine Situation ähnlich der in Fluent NHibernate Mapping not on PK FieldFluent NHibernate-Mapping auf mehrere nicht-PK Felder
jedoch beschrieben haben, ist die Beziehung zwischen meiner Tabellen von mehreren Nicht-Primärschlüsselspalten beschrieben. Stellen Sie sich vor Chris Meek Situation aber, wo ein Person
eine JobType
und eine Code
, die zusammen sollte (sorry, es ist eine Legacy-Datenbank) eindeutig beschreiben ein Person
Person
------
Id PK
JobType
Code
Name
Order
-----
Id PK
Person_JobType
Person_Code
OrderDetails
Serhat Özgel der answer beschreibt PropertyRef
, aber ich kann keinen Weg finden, dies für mehrere Spalten einzeln zu tun. Ich habe ähnliche versuchte
class PersonMap : ClassMap<Person>
{
public PersonMap()
{
HasMany(p => p.Order)
.KeyColumns.Add("Person_JobType")
.PropertyRef("JobType")
.KeyColumns.Add("Person_Code")
.PropertyRef("Code")
}
}
Aber dies offensichtlich nicht funktionieren, da KeyColumns.Add()
kehrt eine andere OneToManyPart
so wird PropertyRef()
nicht gegen die einzelnen Spalte hinzugefügt wird ausgeführt werden. Die zweite PropertyRef()
einfach die erste überschreibt, und ich erhalte den folgenden Fehler:
NHibernate.MappingException : collection foreign key mapping
has wrong number of columns: MyApp.Person.Order type: Int32
ich auf den verschiedenen Überlastungen von KeyColumns.Add haben gesucht(),
public TParent Add(string name)
public TParent Add(params string[] names)
public TParent Add(string columnName, Action<ColumnPart> customColumnMapping)
public TParent Add(ColumnMapping column)
Insbesondere die letzten beiden, konnte aber keine Möglichkeit finden PropertyRef
individuell einstellen für jede Spalte Ebene :( gibt es eine Möglichkeit, das zu tun? Bin ich dies über die falsche Art und Weise ganz
Wow, nice. Was ich dabei getan habe, war, dass ich keine NHibernate-Mapping zwischen diesen Klassen hatte und nur die Werte extrahierte und sie zurück ins Repository der anderen Klasse warf, um bei Bedarf die richtigen Datensätze zu erhalten - ziemlich hässlich. Ich wünschte, ich wüsste deinen Trick letzte Woche :) –
Dies ist der Fehler, den ich bekam, während ich diesen Ansatz versuchte (konnte nicht vorbei): alle Zuordnungen dürfen nicht Teil einer Eigenschaft-ref sein – dreamerkumar
@VishalKumar besser eine Frage stellen und einige posten Code? Sieht aus wie die Eigenschaft für die Eigenschaft ref ist eine referenzAny statt Karte – Firo