これは他の3つのテーブルにマップされているコンポジットキーを持つレガシーテーブルを持っています。このテーブルは単純なマッピングテーブルではないので、このテーブルには他の属性があります。これをマッピングするための多対多の解決策です。nHibernateコンポジットキークラスタイプ不一致
次は私がやっていることです:
<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>
A-キーは、単に3つのIDを保持している構造体である、とId_one、Id_two、およびId_threeはすべて、それぞれのクラスでintとして定義されています。
public struct Akey {
public int Id_one { get; set; }
public int Id_two { get; set; }
public int Id_three { get; set; }
}
これは罰金コンパイルが、私はそれを実行しようとすると、それは私にエラーメッセージが表示できます:
NHibernate.QueryException:NHibernate.Criterion.SimpleExpressionで型の不一致:ID期待タイプA-キー、実際の型をSystem.Int32
私が間違っているか迷っているかについて助言してください。
ありがとうございました!
返信いただきありがとうございます。最後の部分が私の問題を解決するのに役立ちました。 = P – Akey
ええと...私はそれを書いた後、最後のものが最初のものだったはずです! – anonymous