次のクラス定義があるとします。
public class SomeEntity
{
public class Key
{
public virtual OtherEntity Other { get; set; }
public virtual int Index { get; set; }
public override bool Equals(object other)
{
// something here...
}
public override int GetHashCode()
{
// something here...
}
}
public virtual Key Id { get; set; }
}
public class OtherEntity
{
public virtual int Id { get; set; }
}
次に、以下のようなマッピング ファイルが必要です。
<class name="SomeEntity" table="SOME">
<composite-id name="Id" class="SomeEntity.Key">
<key-many-to-one name="Other" column="OTHER_ID" class="OtherEntity" />
<key-property name="Index" column="INDEX" type="int" />
</composite-id>
</class>
<class name="OtherEntity" table="OTHER">
<id name="Id" column="ID" type="int">
<generator class="identity" />
</id>
</class>
NHibernate を初期化しようとすると、 「could not find class: SomeEntity.Key」NHibernate.MappingException
というメッセージがスローされます。ほとんどの場合、問題は属性にあります。ネストされたクラスを参照するための適切な構文を見つけることができませんでした。class="SomeEntity.Key"
また、他にどこで答えを探すべきだったのかヒントを得たいと思います (たとえば、「NHibernate in Action」の本で答えを見つけることができませんでした)。NHibernate に関するそのような質問に対して優先するリソースは何ですか?