首页 新闻 会员 周边

求助:用EF4.1 创建数据库

0
[已关闭问题] 关闭于 2012-04-05 18:19

 用户表:WSMP_Users包含:
WSMP_UserID WSMP_UnitID WSMP_DepartmentID
 单位表包含:WSMP_UnitID 
 部门表包含:WSMP_DepartmentID WSMP_UnitID
创建的时候报错如下:
将 FOREIGN KEY 约束 'WSMP_Unit_Users' 引入表 'WSMP_User' 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。请参阅前面的错误消息。
请大家帮忙 看看 怎么解决

明空的主页 明空 | 菜鸟二级 | 园豆:207
提问于:2012-03-19 12:25
< >
分享
所有回答(2)
0

你的创建语句是什么样的?

artwl | 园豆:16736 (专家六级) | 2012-03-19 18:32

    /// <summary>
    /// 单位基本信息
    /// </summary>
    public class WSMP_Unit
    {
        /// <summary>
        /// 单位编号
        /// </summary>
        [Key]
        public virtual int WSMP_UnitID { get; set; }

        /// <summary>
        /// 单位中文名称
        /// </summary>
        [Required(ErrorMessage = "*")]
        [StringLength(50)]
        [Display(Name = "单位名称")]
        public virtual string Unit_CName { get; set; }

        /// <summary>
        /// 单位英文名称
        /// </summary>
        [Required(ErrorMessage = "*")]
        [StringLength(60, MinimumLength = 1, ErrorMessage = "最短为1个字符")]
        [Display(Name = "英文名称")]
        public virtual string Unit_EName { get; set; }

}

 

    /// <summary>
    /// 员工信息表
    /// </summary>
    public class WSMP_Employees
    {
        /// <summary>
        /// 员工编号
        /// </summary>
        [Key]
        public virtual int WSMP_EmployeesID { get; set; }

        /// <summary>
        /// 单位(与WSMP_Unit 单位信息表 关联)
        /// </summary>
        public virtual int WSMP_UnitID { get; set; }

        /// <summary>
        /// 部门(与WSMP_Department 与部门信息表 关联)
        /// </summary>
        public virtual int WSMP_DepartmentID { get; set; }

        /// <summary>
        /// 所属项目组(与WSMP_Group 与项目人员信息表 关联)
        /// </summary>
        [Required(ErrorMessage = "*")]
        public virtual int WSMP_GroupID { get; set; }

        /// <summary>
        /// 员工名称
        /// </summary>
        [Required(ErrorMessage = "*")]
        [StringLength(100)]
        [Display(Name = "员工名称")]
        public virtual string Employee_CName { get; set; }

 }

运行时报错:

将 FOREIGN KEY 约束 'WSMP_Employees_WSMP_Unit' 引入表 'WSMP_Employees' 可能会导致循环或多重级联路径。请指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束。请参阅前面的错误消息。

麻烦您帮我看看

支持(0) 反对(0) 明空 | 园豆:207 (菜鸟二级) | 2012-03-19 18:39

@明空: 

仅根据你帖出来的代码看不出来啊,这里没有外键信息

另外,为什么都加virtual 关键字呢?

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-03-19 18:44

@artwl: 

    /// <summary>
    /// 单位基本信息
    /// </summary>
    public class WSMP_Unit
    {
        /// <summary>
        /// 单位编号
        /// </summary>
        [Key]
        public virtual int WSMP_UnitID { get; set; }

        /// <summary>
        /// 单位中文名称
        /// </summary>
        [Required(ErrorMessage = "*")]
        [StringLength(50)]
        [Display(Name = "单位名称")]
        public virtual string Unit_CName { get; set; }

         /// <summary>
        /// 员工集合
        /// </summary>
        public virtual List<WSMP_Employees> WSMP_Employeess { get; set; }

}

        /// <summary>
        /// 员工编号
        /// </summary>
        [Key]
        public virtual int WSMP_EmployeesID { get; set; }

        /// <summary>
        /// 单位(与WSMP_Unit 单位信息表 关联)
        /// </summary>
        public int WSMP_UnitID { get; set; }

        /// <summary>
        /// 部门(与WSMP_Department 与部门信息表 关联)
        /// </summary>
        public int WSMP_DepartmentID { get; set; }

        /// <summary>
        /// 所属项目组(与WSMP_Group 与项目人员信息表 关联)
        /// </summary>
        public int WSMP_GroupID { get; set; }

        /// <summary>
        /// 员工名称
        /// </summary>
        [Required(ErrorMessage = "*")]
        [StringLength(100)]
        [Display(Name = "员工名称")]
        public virtual string Employee_CName { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public virtual  WSMP_Unit WSMP_Units { get; set; }

        /// <summary>
        /// 部门
        /// </summary>
        public virtual WSMP_Department WSMP_Department { get; set; }

        /// <summary>
        /// 项目组
        /// </summary>
        public virtual WSMP_Group WSMP_Group { get; set; }

}

麻烦您帮我看看 这样写对不对?谢谢!

支持(0) 反对(0) 明空 | 园豆:207 (菜鸟二级) | 2012-03-20 10:30
0

求解决

chkang0715 | 园豆:202 (菜鸟二级) | 2013-04-19 15:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册