Проблема при настройке отношения свойств односторонней навигации
public class Answer
{
[Key]
public int AnswerID { get; set; }
[ForeignKey("Question")]
[Required]
public int QuestionID { get; set; }
public Question Question { get; set; }
public virtual ICollection<QuestionOption> SelectedOptions { get; set; }
}
public class Question
{
[Key]
public int QuestionID { get; set; }
public ICollection<QuestionOption> AnswerOptions { get; set; }
}
public class QuestionOption
{
[Key]
public int QuestionOptionID { get; set; }
[Required]
public String Value { get; set; }
[ForeignKey("Question")]
public int QuestionID { get; set; }
public Question Question { get; set; }
}
Выше мои занятия (только с важными свойствами). Как видите, я пытаюсь настроить ответ, чтобы получить список выбранных опций из доступных опций для вопроса. Как вы можете видеть, для этого потребуется только свойство односторонней навигации.
Я пробовал:
modelBuilder.Entity<Answer>()
.HasMany(e => e.SelectedOptions)
.WithRequired()
.WillCascadeOnDelete(false);
Но когда я пытаюсь запустить мой метод seed, я получаю:
Объекты в ApplicationDbContext.QuestionOptions участвуют в отношении "Answer_SelectedOptions". 0 связанных 'Answer_SelectedOptions_Source' были найдены. 1 'Answer_SelectedOptions_Source' ожидается.
Все таблицы строятся за исключением таблицы Answers_SelectedOptions. Я подозреваю, что есть что-то не совсем правильное в моём утверждении построителя модели. Спасибо за любую помощь! EF является новым для меня
Я тоже пробовал
modelBuilder.Entity<Answer>()
.HasMany(e => e.SelectedOptions)
.WithMany();
Но я получаю ошибку
Введение ограничения FOREIGN KEY "FK_dbo.AnswerQuestionOptions_dbo.QuestionOptions_QuestionOption_QuestionOptionID" в таблицу "AnswerQuestionOptions" может привести к возникновению циклов или нескольких каскадных путей. Укажите ON DELETE NO ACTION или ON UPDATE NO ACTION, либо измените другие ограничения FOREIGN KEY.