树形结构实体 NHibernate使用FluentNHibernate配置问题

pp7748 2013-02-26 12:47:58
实体类

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应该如何配置
...全文
11200 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2013-03-02
  • 打赏
  • 举报
回复
你把17行HasOne...后面的分号“;”改成“.”试试。
pp7748 2013-02-28
  • 打赏
  • 举报
回复
是的,树形结构的部门 如何map是如何配置的
子夜__ 2013-02-27
  • 打赏
  • 举报
回复
How to map a tree in NHibernate ?

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧