2009-04-20 9 views
1

Ich habe ein Mitglied der Tabelle mit Feldern
memid - Primary Key
BUSINESS_NAME
Business_Address
Business_PhoneNHibernate Mapping Entity von Felder in derselben Tabelle

Ich brauche einen Arbeitgeber Klasse zu machen, die Eigenschaften hat, die kommen aus die gleiche Mitglieder Tabelle.
EmployerName
EmployerAddress
EmployerPhone

Hier ist mein Arbeitgeber Mapping

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> 
<class name="Employer, Entities" lazy="true" table="Members" dynamic-update="true"> 
     <id name="MemberID" column="MemID" type="Int64"> 
      <generator class="native" /> 
     </id> 
     <many-to-one name="EmployerAddress" column="Business_Address" class="Address, Entities" lazy="proxy" /> 
     <many-to-one name="EmployerPhone" column="Business_Phone" class="Phone, Entities" lazy="proxy"/> 
     <property name="EmployerName" column="Business_Name" not-null="false" /> 
    </class> 
</hibernate-mapping> 

Ich dachte, dass ich die Mitglieder der Klasse wie diese Karte könnte, aber ich eine „System.Collections.Generic.KeyNotFoundException bekommen: Die gegebener Schlüssel war im Wörterbuch nicht vorhanden. "

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> 
<class name="Member, Entities" lazy="true" table="Members" dynamic-update="true"> 
<id name="MemberID" column="MemID" type="Int64"> 
<generator class="native" /> 
</id> 
<one-to-one name="EmployerInformation" class="Employer, Entities" lazy="false"/> 
    </class> 
</hibernate-mapping> 

Bitte beachten Sie auch. Ich kann die Geschäftsinformationen aufgrund von Einschränkungen des aktuellen Systems nicht in eine andere Tabelle verschieben. Business_Address und Business_Phone sind FK zu einer anderen Tabelle, weshalb sie viele Eins-zu-eins-Zuordnungen sind.

Antwort

2

Ich bin mir nicht sicher, ob Sie das suchen, aber Sie könnten das "Komponenten" Mapping versuchen. Dies ermöglicht Ihnen, eine geschachtelte Klasse in derselben Tabelle zu haben.

Suche google nach "nhibernate component" - es scheint, dass die hibernate.org-Seite immer noch nicht aktiv ist (!), Aber Sie können die Komponenteninformationen aus dem Google-Cache für die Seite "Kapitel 7 - Komponentenzuordnung abrufen . "

+0

Das löste mein Problem, vielen Dank! – Adam

+0

Super, ich bin froh, dass das geholfen hat! –