Fluent NHibernate, das eine Referenz auf eine Spalte zuordnet, die nicht die ID-Spalte ist

8

Ich verwende Fluent Nhibernate 1.0 mit Sharp Architecture 1.0

Momentan versuche ich einen Verweis auf eine ZipCode-Klasse zuzuordnen. Die aktuelle Klasse, die ich abdecke, hat eine ZipCode-Spalte, aber die Postleitzahl-Klasse ist viel umfangreicher als das, was für eine grundlegende Postleitzahl benötigt wird, daher die Begründung. (Grundsätzlich Zipcode Klasse enthält lat. Und long. UTC Zeitzone usw., alle Dinge, die nur gelesen werden)

Das ist meine Zuordnung

%Vor%

und wenn ich meine Tests ausführe, erhalte ich diesen Fehler.

  

Initialisierungsmethode CountryRepositoryTests.SetUp hat Ausnahme ausgelöst. System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException: Die Spalte 'ZipCode.ZipCodeID' ist nicht derselbe Datentyp wie die referenzierende Spalte 'Address.ZipCode' im Fremdschlüssel 'FK8C1490CB2993CD44'.   Constraint konnte nicht erstellt werden. Siehe vorherige Fehler.

Ich habe versucht, den ForeignKey und die Constrained Lambdas hinzuzufügen, aber sie scheinen nichts hinzuzufügen.

Die Postleitzahltabellen haben eine ID, aber ich möchte diese nicht zuordnen, sondern ich möchte die Postleitzahl-Spalte der Postleitzahl-Tabelle zuordnen, zurück zur Postleitzahl-Spalte der Adressentabelle.

Wenn jemand irgendwelche Ideen hat, wie ich das umgehen kann, würde ich es sehr schätzen.

Bitte beachten Sie, dass ich, wie oben erwähnt, nicht einfach auf die Postleitzahl-Tabelle verweisen und die Eigenschaft auf die Adresse löschen kann, weil die Postleitzahl-Tabelle nur gelesen wird.

Dies ist die ZipCodeRadius-Klasse.

%Vor%

Dies ist die Adressklasse

%Vor%

Dies ist die ZipCode-Tabellenzuordnung

%Vor%     
Pieter 14.01.2010, 18:27
quelle

1 Antwort

6

Anscheinend ist HasOne der richtige Weg, dies zu tun ... Obwohl ich dachte, dass ich es versuchte, fehlte mir das PropertyRef ...

%Vor%     
Matt Braunwart 14.01.2010, 20:14
quelle