【问题标题】:EFCore - error 23505 (duplicate key) while saving changesEFCore - 保存更改时出现错误 23505(重复键)
【发布时间】:2022-08-24 05:27:50
【问题描述】:

我正在使用“每个层次结构的表”。 我让 EFCore 检测我的类模型(层次结构)并通过仅定义我的所有 DbSet 自行创建数据库。

大多数情况下,EFCore 会正确检测所有内容并创建正确的表映射。

但我想我发现了一个错误,当我尝试执行 context.SaveChanges() 时,我得到一个“23505 Duplicate key”异常。当我对一个类的对象进行更改时会发生异常,该类继承自一个类的父类也继承自另一个类。

在下面的类图示例中,当我更改 SoftwareCourse 中的任何属性(其中 SoftwareCourse 对象已经存在并且已经持久化到数据库中)时,就会出现问题。

    标签: c# exception entity-framework-core tph duplicate-key


    【解决方案1】:

    “ForeignKey”属性修复了我遇到的异常,就像我在“Student”类中定义了我的“Course”-“Student”关系如下:

    [ForeignKey(nameof(StudentId ))]
    public virtual Student Student { get; set; }
    
    public int StudentId { get; set; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-27
      • 2011-07-21
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多