.NET 追寻足迹

C# 之路

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

实现自关联数据时,有两点须注意:

1.外键字段必须设置为可为空的值类型(如int?;Guid?等)

2.设置映射时不能级联删除,要设置WillCascadeOnDelete(false)

二话不说了,直接来代码:

一.部门实体:

/// <summary>
        
/// 部门名
        
/// </summary>
        public string Name { getset; }

        /// <summary>
        
/// 部门编号
        
/// </summary>
        public string Code { getset; }

        /// <summary>
        
/// 父级部门ID
        
/// </summary>
        public Guid? ParentId { getset; }

        /// <summary>
        
/// 部门顺序号(同级)
        
/// </summary>
        public int Order { getset; }

        /// <summary>
        
/// 父级部门
        
/// </summary>
        public virtual Department ParentDepartment { getset; }

        /// <summary>
        
/// 当前部门下的员工(不包含子部门的)
        
/// </summary>
        public virtual ICollection<Employee> Employees { getset; }

        /// <summary>
        
/// 当前部门的子部门(不包含子部门的下级部门)
        
/// </summary>
        public virtual ICollection<Department> ChildrenDepartments { getset; }

二.实体的映射配置

public class DepartmentEntityConfig:EntityTypeConfiguration<Department>
    {
        #region 成员变量

        #endregion

        #region 构造函数

        public DepartmentEntityConfig()
        {
            this.HasKey(d => d.Id);

            this.Property(d => d.Name)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(d => d.Code)
                .IsRequired()
                .HasMaxLength(10);

            this.Property(d => d.Order)
                .IsRequired();

            this.Property(d => d.ParentId)
                .IsOptional();

            this.HasOptional(d => d.ParentDepartment)
                .WithMany(c => c.ChildrenDepartments)
                .HasForeignKey(d => d.ParentId)
                .WillCascadeOnDelete(false);
               

            this.ToTable("Department");
        }

        #endregion

        #region 属性

        #endregion

        #region 方法

        #endregion
    }

 一定注意加红色的部分,搞了我好久

posted on 2011-12-30 09:36  绿水青山  阅读(768)  评论(2编辑  收藏  举报