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

Какой обходной путь с этим? Можно ли это сделать с помощью аннотаций данных?

public class QuestionModel
{
    [Required]
    public int Id { get; set; }

    public long AskedUserId { get; set; }
    [ForeignKey("AskedUserId")]
    public virtual ApplicationUser AskedApplicationUser { get; set; }
    public long AskerId { get; set; }
    [ForeignKey("AskerId")]
    public virtual ApplicationUser AskerApplicationUser { get; set; }
    [Required]
    public string content { get; set; }
    public bool IsAnswered { get; set; }
}

В чем проблема в этой модели? Почему я получаю эту ошибку:

Введение ограничения FOREIGN KEY 'FK_Questiions_AspNetUsers_AskerId' в таблицу 'Questiions' может привести к возникновению циклов или нескольких каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION, либо измените другие ограничения FOREIGN KEY. Не удалось создать ограничение или индекс. Смотрите предыдущие ошибки.

1 Ответ

0 голосов
/ 24 июня 2019

У вас есть ForeignKey украшения под свойствами, когда они должны быть над ними.Атрибуты применяются к неправильным свойствам.

У вас также есть несколько вхождений свойства AskedApplicationUser.

Попробуйте это:

public class QuestionModel
{
    [Required]
    public int Id { get; set; }

    [ForeignKey("AskedUserId")]
    public long AskedUserId { get; set; }
    [ForeignKey("AskerId")]
    public long AskerId { get; set; }
    public virtual ApplicationUser AskedApplicationUser { get; set; }
    [Required]
    public string content { get; set; }
    public bool IsAnswered { get; set; }
}
...