【发布时间】:2017-04-04 03:33:04
【问题描述】:
我是 .NET MVC 的新手。但是,我遇到的这个“问题”看起来很常见,我找不到任何教程或 stackoverflow 线程来解释如何正确地做到这一点。
我有一个类,MyClass,它有两个相同类型的属性
public class MyClass : IEquatable<MyClass>
{
public virtual MyClass LeftChild { get; set; }
public virtual MyClass RightChild { get; set; }
...
}
现在我遇到了休眠映射问题。起初我尝试了一对一的映射。我创建了新实例并且不设置 Childs ,将其持久化(假设 Id=1),并将此实例传递给 View,我预计 RightChild 将为 NULL 而 LeftChild 将为 NULL。但在调试模式下,我可以看到,RightChild 设置为 MyClass,Id=1(就像 MyClass 实例将自身设置为此属性一样),与 LeftChild 相同。
映射 MyClass.hbm.xml
...
<one-to-one name="LeftChild" class="MyClass"/>
<one-to-one name="RightChild" class="MyClass"/>
...
是一对一的正确方法还是我应该使用其他方法?
【问题讨论】:
标签: asp.net-mvc inheritance nhibernate mapping nhibernate-mapping