首页 新闻 赞助 找找看

efcore6 在生成拥有上下级关系的数据表时,会默认生成一个表明ID的外键

0
[已解决问题] 解决于 2022-11-19 13:28

  如图:我的一个部门表有parentid来表示上级。efcore生成的数据表中会多一个departmentid字段。

 

 

我的实体类如下:

public class Department{
        public string Id{get;set;}
        /// <summary>
        /// 部门名称
        /// </summary>
        public string Name { get; set; } 
        /// <summary>
        /// 备注说明
        /// </summary>
        public string? Remark{ get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public Core.Enums.ModelEnums.StatusEnum Status { get; set; }
    
        public int Sort { get; set; }
        public string? ParentId { get; set; }
        public Department? Parent { get; set; }
        public List<Department> Children { get; set; }
        public string? CreatorId { get; set; }
        public DateTime? CreatorDate { get; set; }
        public string? ModifyId { get; set; } 
        public DateTime? ModifyDate { get; set; }
}

 

请问大佬,为什么会出现这种情况啊,我要如何去解决 ?

尾随前行的主页 尾随前行 | 初学一级 | 园豆:0
提问于:2022-11-18 23:59
< >
分享
最佳答案
0

可能与 Parent 属性有关,建议提供一下关系配置代码

奖励园豆:5
dudu | 高人七级 |园豆:31075 | 2022-11-19 12:10

是的,我之前设置了parent的删除关系,去掉那个就好了。谢谢大佬

尾随前行 | 园豆:0 (初学一级) | 2022-11-19 13:28
其他回答(1)
0

找到问题了,有设置t.HasOne(a => a.Parent).WithMany().HasForeignKey(a => a.ParentId).OnDelete(DeleteBehavior.NoAction);去掉这个就行了

尾随前行 | 园豆:0 (初学一级) | 2022-11-19 13:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册