Ich habe eine Legacy-Tabelle mit zusammengesetzten Schlüsseln, die auf 3 andere Tabellen zugeordnet sind, da diese Tabelle andere Attribute enthalten, da es keine einfache Zuordnungstabelle ist, kann ich die vielen nicht verwenden -to-many-Lösung zum Abbilden. nHibernate Composite-Schlüssel Klassentyp Mismatch
Das folgende ist das, was ich getan habe:
<class name="classA" table="A">
<composite-id name="ID" class="AKey">
<key-many-to-one name="Id_one" class="One" column="Id_one" />
<key-many-to-one name="Id_two" class="Two" column="Id_two" />
<key-many-to-one name="Id_three" class="Three" column="Id_three" />
</composite-id>
AKey ist lediglich eine Struktur, die die drei IDs hält, und Id_one, Id_two und Id_three sind alle als int in ihrer jeweiligen Klasse definiert.
public struct Akey {
public int Id_one { get; set; }
public int Id_two { get; set; }
public int Id_three { get; set; }
}
Dies kompiliert gut, aber wenn ich versuche, es zu laufen, es gibt mir eine Fehlermeldung:
NHibernate.QueryException: Typenkonflikt in NHibernate.Criterion.SimpleExpression: ID erwarteten Typ AKey, tatsächlicher Typ System.Int32
Bitte geben Sie an, was ich falsch oder falsch gemacht habe.
Vielen Dank!
Danke für Ihre Antwort! Der letzte Teil hat mir geholfen, mein Problem zu lösen, jetzt kann ich endlich weiter machen! = P – Akey
Yah ... Ich erkannte, nachdem ich es geschrieben hatte, dass der letzte der erste sein sollte! – anonymous