回答

收藏

实体框架ALTER TABLE语句与FOREIGN KEY约束冲突

技术问答 技术问答 441 人阅读 | 0 人回复 | 2023-09-14

关于在Entity Framework在数据库更新中,首先代码迁移,出现此错误:
  C' b; J. S9 `7 b1 tALTER TABLE语句与FOREIGN KEY约束“6 G! Z( o% B5 r, u
FK_dbo.Clients_dbo.MedicalGroups_MedicalGroupId冲突。数据库 hrbc”的表“  Q' j% R& U! @0 T
dbo.MedicalGroups”的列“ Id冲突发生在中间。$ f/ }; n2 r5 x. o# w7 c  r
这是我的课:- c  |: Z; G* N1 m0 ^2 ~( l
public partial class Client{    [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]    public int Id { get; set;    public string FirstName { get; set;    public string LastName { get; set;    public int? MedicalGroupId { get; set;    [ForeignKey("MedicalGroupId")]    public virtual MedicalGroups MedicalGroup { get { return _MedicalGroup; } set { _MedicalGroup = value; } }}这是我的二等班:) [- t# q4 m8 R" U6 ]+ o, a
public partial class MedicalGroups{    [Key]    public int Id { get; set;    public string Name { get; set; }}这是我想申请的迁移:
- ?  B$ m* u- S5 Q- L* Bpublic override void Up(){     AddForeignKey("dbo.Clients","MedicalGroupId","dbo.MedicalGroups","Id");    CreateIndex("dbo.Clients","MedicalGroupId");}               
' z5 Y( b0 u- c" _0 V3 g    解决方案:                                                                1 s8 {9 q. y  c* h
                                                                我得到了我问题的解决方案。问题是我的客户表中有数据。因为我的客户表不现实medicalgroupid所以它在外键约束上给了我错误。( o8 r2 A) l+ ~0 z; }1 @# r4 E
Update Client set MedicalGroupId = NULL
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则