Frage

Lassen Sie uns sagen, dass ich eine Anfrage Tisch haben, das sieht wie folgt aus:

RequestId INT  
ReferenceNumber VARCHAR

Jede Anforderung wird in einem requestlog Tabelle protokolliert. Es ist keine Fremdschlüssel zwischen den Tabellen:

RequestLogId INT  
ReferenceNumber VARCHAR  
Content VARCHAR  

Die requestlog enthält den Inhalt der Anforderung, und dieser Inhalt muss für einen bestimmten Zeitraum gespeichert werden. Die Anforderung kann gelöscht werden, aber das Protokoll kann erst nach einer gewissen Zeit gelöscht werden.

Wie kann ich meine Anfrage Objekt zuordnen, so dass es eine Liste von requestlogs, bezogen auf die Referenznummer enthalten?

Ich habe versucht, dies:

Table("InsuranceRequest");  
Id(i => i.Id).Column("InsuranceRequestId");  
Map(i => i.ReferenceNumber);  
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();

Es ist allerdings nicht funktionieren. Diese Zuordnung versucht, die Referenznummer an die RequestLogId von requestlog abzubilden. Gibt es eine Möglichkeit zu geben, dass die Joinspalte die insurancerequestlog Referenznummer sein sollte?

War es hilfreich?

Lösung

nichts verhindern, dass das viele zu viele in der Tabellenstruktur .. Ich empfehle, die Struktur zu ändern und Fremdschlüssel zu machen, und ich bin sicher, dass die viele zu vielen Mapping werden für u arbeiten, wenn die Abbildung i nicht nach der Strukturänderung zu arbeiten.

Noch ein Tipp für u: nehmen einen leeren db und versuchen Schema aussetzen .. als u wird der Lage sein nhibernate denken sollte die Struktur aussehen

zu sehen, was
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top