Entity Framework Core Самостоятельная ссылка на таблицу, установленную в ноль при удалении - PullRequest
0 голосов
/ 05 июля 2018

У меня есть субъект, на который есть собственная ссылка. Сотрудник:

public class Employee
    {
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int EmployeeID { get; set; }
    public string UserId { get; set; }

    [Required]
    public String LastName { get; set; }
    [Required]
    public String FirstName { get; set; }
    [Required]
    public String Job { get; set; }

    public int? ManagerID { get; set; }
    [ForeignKey("ManagerID")]
    public virtual Employee Manager { get; set; }

    [ForeignKey("ResponsableID")]
    public virtual List<Employee> IsManagerOf { get; set; }

    [ForeignKey("EmployeeID")]
    public List<Signature> Signatures { get; set; }

    [ForeignKey("EmployeeID")]
    public List<Object> Objects { get; set; }

}

Сотрудник может иметь менеджера, который является сотрудником. Но если менеджер удален, я хочу установить для поля ManagerID значение null.
Я пробовал свободно API с:

builder.Entity<Employee>().HasMany(e => e.IsManagerOf).WithOne(e => e.Manager).OnDelete(DeleteBehavior.SetNull);

Но я получил ошибку:

Ограничение FOREIGN KEY 'FK_Employee_Employee_ManagerID' для таблицы «Сотрудник» может вызывать циклы или несколько каскадных путей

Я не совсем понял, почему это может вызвать кружок, если менеджер удален, только поле managerID некоторых сотрудников установлено в ноль.

Как я могу это исправить или сделать обходной путь?

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