Я немного запутался, почему я получаю эту ошибку:Вводя FOREIGN KEY ошибка ограничения проблемы
Introducing FOREIGN KEY constraint 'FK_QuestionTerms_Terms_TermId'
on table 'QuestionTerms' may cause cycles or multiple cascade paths.
Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other
FOREIGN KEY constraints. Could not create constraint. See previous errors.
У меня есть класс Вопрос и класс срок, вопросы могут иметь любое количество терминов, связанные с ними , и Условия могут иметь любое количество связанных с ними Вопросов. Поэтому я пытаюсь создать много-много отношений между ними. Сначала я попытался использовать соглашение, и я разрешаю EntityFramework создавать базу данных. Это вопрос класса
public class Question
{
public Guid Id { get; set; }
public int QuestionNumber { get; set; }
public string StatementHtml { get; set; }
public string AnswerHeaderHtml { get; set; }
public string NotesHtml { get; set; }
public Guid CategoryId { get; set; }
public Guid CourseId { get; set; }
public Guid QuestionTypeId { get; set; }
public Guid? SimulationId { get; set; }
public Guid? SimulationTabId { get; set; }
public ICollection<Term> Terms { get; set; }
public ICollection<ReferenceItem> ReferenceItems { get; set; }
}
А вот срок класса
public class Term
{
public Guid Id { get; set; }
public string Name { get; set; }
public string StatementHtml { get; set; }
public string Authority { get; set; }
public Guid ProductId { get; set; }
public Product Product { get; set; }
public ICollection<Question> Questions { get; set; }
}
Я также попытался переопределить OnModelCreating следующим образом, как результат процесса точно такой же код ошибки.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Question>()
.HasMany(q => q.Terms)
.WithMany(t => t.Questions)
.Map(x =>
{
x.MapLeftKey("QuestionId");
x.MapRightKey("TermId");
x.ToTable("QuestionTerms");
});
}
Проблема в том, что у меня нет сингулярного внешнего ключа между вопросом или термином. Каждый пример, который я видел, касается этой проблемы, когда две таблицы связаны внешним ключом. – Siegeon
Я понимаю вашу точку зрения, может быть, я ошибаюсь в процессе; но в случае productId и продукта одна из них - ассоциация (FK), а другая - свойство навигации. Разве это не правильный способ его кодирования? – Siegeon
Хотя ваш ответ напрямую не ответил на мой вопрос, он действительно запустил меня по правильному пути. Спасибо. – Siegeon