假设您有以下类定义:
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 会导致NHibernate.MappingException
被抛出,并显示"could not find class: SomeEntity.Key"消息。很可能问题出在class="SomeEntity.Key"
属性上。我找不到引用嵌套类的正确语法。
此外,我想得到一个提示,我应该在哪里寻找答案(例如,我在“NHibernate in Action”一书中找不到答案)。对于有关 NHibernate 的此类问题,您首选的资源是什么?