树形结构实体 NHibernate使用FluentNHibernate配置问题
实体类
public class Dept : IEntity
{
public virtual long Id { get; set; }
public Dept()
{
ChildDepts = new HashedSet<Dept>();
}
/// <summary>
/// 部门名称
/// </summary>
public virtual string Name { get; set; }
/// <summary>
/// 部门描述
/// </summary>
[Length(Max = 1024, Message = "名字长度超过1024位")]
public virtual string Remark { get; set; }
/// <summary>
/// 上级部门
/// </summary>
public virtual Dept ParentDept { get; set; }
/// <summary>
/// 下级部门
/// </summary>
public virtual ISet<Dept> ChildDepts { get; set; }
public virtual void AddChildDept(Dept dept)
{
ChildDepts.Add(dept);
dept.ParentDept = this;
}
}
mapping配置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using MOGO.OA.Domain;
namespace MOGO.OA.ORM.Mapping
{
public class DeptMap : ClassMap<Dept>
{
public DeptMap()
{
Table("Dept");
Id(p => p.Id).GeneratedBy.Identity();
Map(p => p.Name).Not.Nullable().Length(64);
Map(p => p.Remark).Nullable().Length(1024);
HasOne<Dept>(p => p.ParentDept);
HasMany<Dept>(p => p.ChildDepts).LazyLoad().Cascade.All().KeyColumn("ParentDept");
}
}
}
现在的问题是,每次ParentDept读取出来是本部门,而不是上层的部门,这个树形结构的mapping应该如何配置 nhibernate orm FluentNHibernate --------------------编程问答-------------------- How to map a tree in NHibernate ? --------------------编程问答-------------------- 是的,树形结构的部门 如何map是如何配置的 --------------------编程问答-------------------- 你把17行HasOne...后面的分号“;”改成“.”试试。
补充:.NET技术 , .NET Framework