【发布时间】:2014-01-19 05:11:28
【问题描述】:
在更新实体框架中的数据库,代码优先迁移时,我收到此错误:
ALTER TABLE 语句与 FOREIGN KEY 约束“FK_dbo.Clients_dbo.MedicalGroups_MedicalGroupId”冲突。冲突发生在数据库“hrbc”、表“dbo.MedicalGroups”、列“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");
}
【问题讨论】:
-
我认为你需要删除 FK_dbo.Clients_dbo.MedicalGroups_MedicalGroupId
-
您在这一步之前是否更改了模型,在 Down() 案例中的情况如何?如果你做错了什么,你应该从数据库中删除前索引作为提及@brykneval
-
@brykneval 名称没有问题,因为我确实更改了外键约束的名称但没有帮助!!!
-
@AOZ 是的,我已经在数据库中添加了医疗组表。现在我想在客户和医疗集团之间建立联系。而且down()方法中没有代码
-
@AOZ 假设我做错了什么我怎么知道?
标签: c# sql .net sql-server entity-framework