删除主键时如何停止删除相关外键值

时间:2019-05-16 12:54:02

标签: c# asp.net asp.net-web-api

问题如下:我有三个相关的表,一个存储客户信息,第二个存储SubscriptionType,第三个付款。

在创建由ClientId和SubscriptionId组成的Payment时,具有正确ID的客户端会通过正确的订阅进行更新。

我无法处理的问题是删除客户端时,与此客户端关联的所有付款也被删除了。我怀疑这可能与CascadeDeleting有关,尽管无法真正找到解决方法。

这是我的模特

public class Payment
{
    [Key]
    public int Id { get; set; }

    public int ClientId { get; set; }
    public Client Client { get; set; }

    public int SubscriptionId { get; set; }
    public Subscription Subscription { get; set; }

    // More properties...     
}

public class Client    
{
    [Key]
    public int Id { get; set; }        

    public int? SubscriptionId { get; set; }
    public Subscription Subscription { get; set; }

    // More properties...
}

public class Subscription
{
    [Key]
    public int Id { get; set; }

    // etc.
}

1 个答案:

答案 0 :(得分:0)

MSDN:的column_constraint页面上

  

删除后{无操作|级联| SET NULL |默认设置 }   指定如果更改后的表中的行具有引用关系并且从父表中删除了被引用的行,将对这些行执行什么操作。默认值为“无操作”。