Dan*_*yes 2 .net nhibernate orm nested-class
假设您有以下类定义:
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; }
}
Run Code Online (Sandbox Code Playgroud)
然后你想要一个类似于下面的映射文件:
<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>
Run Code Online (Sandbox Code Playgroud)
试图初始化NHibernate导致NHibernate.MappingException被抛出,"无法找到类:SomeEntity.Key"的消息.最有可能的问题是class="SomeEntity.Key"属性.我无法找到引用嵌套类的正确语法.
另外我想得到一个提示我应该在哪里寻找答案(例如,我在"NHibernate in Action"一书中找不到答案).关于NHibernate这类问题的首选资源是什么?
您必须对内部类使用CLR语法:
<composite-id name="Id" class="SomeEntity+Key">
...
Run Code Online (Sandbox Code Playgroud)