Как прекратить удаление связанных значений внешнего ключа при удалении первичного ключа - PullRequest
0 голосов
/ 16 мая 2019

Проблема заключается в следующем: у меня есть три связанные таблицы, одна из которых хранит информацию о клиентах, вторая хранит SubscriptionTypes и третий платеж.

Когда создается платеж, состоящий из ClientId и SubscriptionId, клиент с соответствующим 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 голосов
/ 16 мая 2019

Со страницы column_constraint на MSDN:

УДАЛЕНО {НЕТ ДЕЙСТВИЯ |КАСКАД |SET NULL |SET DEFAULT} Указывает, какое действие происходит со строками в таблице, которые изменяются, если эти строки имеют ссылочную связь и указанная строка удаляется из родительской таблицы.По умолчанию НЕТ ДЕЙСТВИЯ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...