【发布时间】:2010-12-29 20:05:37
【问题描述】:
递归数据结构和 (Fluent-)NHibernate 似乎存在问题,或者只是我,完全是个白痴……
这是树:
公共类 SimpleNode {
public SimpleNode ()
{
this.Children = new List<SimpleNode> ();
}
public virtual SimpleNode Parent { get; private set; }
public virtual List<SimpleNode> Children { get; private set; }
public virtual void setParent (SimpleNode parent)
{
parent.AddChild (this);
Parent = parent;
}
public virtual void AddChild (SimpleNode child)
{
this.Children.Add (child);
}
public virtual void AddChildren (IEnumerable<SimpleNode> children)
{
foreach (var child in children) {
AddChild (child);
}
}
}
映射:
公共类 SimpleNodeEntity : ClassMap
{
public SimpleNodeEntity ()
{
Id (x => x.Id);
References (x => x.Parent).Nullable ();
HasMany (x => x.Children).Not.LazyLoad ().Inverse ().Cascade.All ().KeyNullable ();
}
}
现在,每当我尝试保存节点时,都会得到以下信息:
System.InvalidCastException:无法从源类型转换为目标类型。在(包装器动态方法)SimpleNode。 (object,object[],NHibernate.Bytecode.Lightweight.SetterCallback) 在 NHibernate.Bytecode.Lightweight.AccessOptimizer.SetPropertyValues (object,object[]) 在 NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer (object,object[])
我的设置:
Mono 2.8.1(在 OSX 上)、NHibernate 2.1.2、FluentNHibernate 1.1.0
【问题讨论】:
标签: c# nhibernate fluent-nhibernate recursion mono