在实体框架中更新数据库时,代码优先迁移,我遇到以下错误:

ALTER TABLE语句与外键约束"FK_dbo.Clients_dbo.MedicalGroups_MedicalGroupId"冲突.冲突发生在数据库"hrbc"、表"dbo.MedicalGroup"的"Id"列中.

这是我的班级:

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; } }
}

这是我的第二节课:

public partial class MedicalGroups
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
}

这是我要申请的移民:

public override void Up()
{
    AddForeignKey("dbo.Clients", "MedicalGroupId", "dbo.MedicalGroups", "Id");
    CreateIndex("dbo.Clients", "MedicalGroupId");
}

推荐答案

我找到了解决问题的办法.问题是我在客户表中的"数据".因为我的客户机表中有MedicalGroup ID值,而这些值实际上并不存在,所以它在外键约束上给了我错误.

Update Client set MedicalGroupId = NULL

Sql相关问答推荐

在SQL中查询SQL以返回NULLS和空数据集的 node 列表

数据子集的左连接

Postgresql在加入时显示重复的行

基于时间的SQL聚合

获取每个帖子的匹配关键字列表

查询多个表并返回合并在联合列上的所有表中的所有行

Oracle SQL-将结果列在单行中

为什么在postgres中,横向连接比相关子查询快?

Ffltter&;Dart SQL Lite包:是否可以在一个查询中执行多条更新语句(每次执行不同的WHERE参数)

SQL SELECT MOST NEST TIMESTAMP BEAT ORDER

SQL:如何取上一年的平均值?

根据Rails活动记录中时间戳/日期时间的时间部分从PostgreSQL中提取记录

SQL JSON_QUERY 使用列中的值构造 json 路径并接收错误

Netezza SQL:判断两个表是否相同

给定 3 个键列,从一个表中 Select 另一表中不存在的所有数据

如何使用 Google BigQuery 中的条件根据特定列值连接列的 N 行?

为 sqlite 全文搜索 (fts) 创建触发器时出现虚拟表的不安全使用

在 SQL 查询中创建滚动日期

Django only() 和 values() 不适用于 prefetch_related()

如何将多行的查询结果合并为一行