违反参照完整性

时间:2018-08-09 10:07:42

标签: c# database referential-integrity

我收到下一条错误消息:

  

System.Data.Entity.Infrastructure.DbUpdateException:'更新条目时发生错误。有关详细信息,请参见内部异常。'

基本上我有两个类,类型和设备。

public class Device
{
    [Key]
    public int DeviceID { get; set; }
    public string Name { get; set; }
    public virtual Type DeviceType { get; set; 
}

和:

public class Type
{
    [Key]
    public string TypeName { get; set; }
}

如何在程序中删除类型而不造成数据库问题?

2 个答案:

答案 0 :(得分:0)

您必须先删除使用该类型的所有设备...或先禁用外键

答案 1 :(得分:0)

您在DeviceType之间有一个外键。根据您的设置方式,设备可能有也可能没有类型,但是一旦设备具有类型,则数据库将不允许您删除该类型 >,因为那个设备的类型是什么?

您的选择是:

  • 请勿删除类型。只需添加一个布尔值字段即可记录该类型是否处于活动状态。

  • 仅在用所需的内容更新所有设备后删除类型(将它们设置为无类型?也删除它们?)