У меня есть набор вопросов. У каждого вопроса есть ссылка на другую (следующий вопрос). Как я могу правильно понять это в модели? Я думаю, что вариантASP.NET MVC ссылка на другой объект такого же типа
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace TestAlibra.Models
{
public class Question
{
public int ID { get; set; }
[Required]
public string Title { get; set; }
public int NextQuestion { get; set; }
}
}
будет ошибочным, поскольку это не соответствует критериям EF. вариантным Также как
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace TestAlibra.Models
{
public class Question
{
public int ID { get; set; }
[Required]
public string Title { get; set; }
public int QuestionID { get; set; }
public virtual Question Question { get; set; }
}
}
выглядит очень странно; Я думаю, что это тоже неправильно.
Спасибо за помощь!
Это похоже на дерево вопросов? вам нужно будет ограничить FK в той же таблице. что вы можете сделать, но EF не справляется с этим. – Ewan
Да, дерево вопросов. Но каждый вопрос может иметь ссылку только на один вопрос. Также я думаю о создании таблицы с полями: questionID, nextQuestionID. Просто для навигации. Но я не уверен, что это хорошая идея создать таблицу именно для этого. –
да, так что ваш стол будет как ваш первый объект, где NextQuestionId имеет FK Question.Id EF, который ненавидит это, потому что ему придется загружать потенциально бесконечный список объектов. Кроме того, вы хотите, чтобы NextQuesionId был нулевым, снова EF будет жаловаться. – Ewan