【发布时间】:2021-05-12 11:44:09
【问题描述】:
我的 SQL Server 数据库中有两个表 - 一个用于类别:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public Category Parent { get; set; }
}
然后是Assistant 表:
public class Assistant
{
public int Id { get; set; }
public int UserId { get; set; }
public DateTime CreatedAtUtc { get; set; }
public Status Status { get; set; }
public int? CategoryId { get; set; }
[ForeignKey("CategoryId")]
public Category Category { get; set; }
}
当我尝试进行迁移时出现此错误:
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_Assistants_Categories_CategoryId”冲突。数据库“Pirma”中发生冲突 isMsSql”,表“dbo.Categories”,列“Id”。
我不知道为什么。
谢谢
【问题讨论】:
-
因为表格中没有值,所以
dbo.Categories在Id列中。 -
新数据库,我只是设计数据库。不确定你的意思是什么价值。 @Larnu
-
在您要添加外键的列中至少有一个。如果数据已经破坏了所述约束,则无法创建外键。错误告诉你问题所在。
-
它在我的项目中运行良好。我认为您需要先删除以前的迁移,然后再添加迁移。
标签: sql-server entity-framework alter-table