Ich habe Angst, diese Frage auch wirklich zu stellen, da ich das Ganze ziemlich ekelhaft finde. Aber was werden Sie mit einer Legacy-Datenbank tun?Fließende NHibernate Complex Composite Key Mapping
Ich habe die folgenden drei Tabellen
Generator Alarm AlarmDescription
--------- ----- ----------------
Id Id
Id <- GensetId DescriptionText
EventTypeId -> AlarmCode
PanelId ----------------> PanelId
Wenn es aus dem obigen Rendering nicht klar ist, habe ich einen Alarm, die sowohl eine Genset und eine AlarmDescription hat. Das Genset kann direkt über die Eigenschaft GensetId zugeordnet werden. Die AlarmDescription sollte auch leicht von der Id-Eigenschaft abbildbar sein? Aber es wurde nicht so entworfen, und stattdessen ist ein Verbund von (AlarmCode, PanelId)
(beachten Sie, sie teilen nicht einmal den gleichen Feldnamen, fand dies heraus, nachdem kämpfen, um eine Beziehung bis zur Überprüfung der Daten zu finden).
Also, wie würden Sie dies mit Fluent NHibernate abbilden? Ich habe ein paar Variationen ausprobiert, bin aber gescheitert. Etwas wie das Folgende wäre ... ideal, aber ich denke nicht, dass so etwas direkt verfügbar ist.
References(x => x.AlarmDescription)
.Column("AlarmCode", m => m.EventTypeId)
.Column("PanelId", m => m.Genset.PanelId)
Formeln sind die Schlussfolgerung, zu der ich auch gekommen bin, ich hatte nur gehofft, dass es eine schönere/magischere Art gab, es zu tun. – shortstuffsushi
Zuerst dachte ich nicht einmal, dass wir eine Möglichkeit haben könnten, das zu kartieren. Ich würde nicht erwarten, eine andere Lösung als die Verwendung von Formel (oder die Änderung der db) für einen solchen Fall zu haben. –