当前位置:编程学习 > C#/ASP.NET >>

树形结构实体 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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,