我正在使用实体框架代码优先制作一种测试生成应用程序。我有一个名为 的基类Question
,从该基类MultipleChoiceQuestion
、EssayQuestion
和其他问题类型下降。 MultipleChoiceQuestions
显然有多个答案,应试者必须从中选择。我的问题与选择将它们存储在问题实例中的最佳方式有关。
我可以用一个字符串列表来声明这个类来保存答案,如下所示:
public class MulitpleChoiceQuestion : Question
{
private List<String> Answers = new List<String>();
// other declarations, etc.
}
相反,我可以声明另一个名为 的类Answers
,并让我的Question
类使用 Answers 的集合。
public class Answer
{
public int AnswerID { get; set; }
public String AnswerText { get; set; }
public virtual Question Question { get; set; }
}
然后在我的问题子类中(不仅仅是MultipleChoiceQuestions
)
public class MulitpleChoiceQuestion : Question
{
public virtual ICollection<Answer> Answers { get; set; }
// other declarations, etc.
}
有没有比这两种方法更好的方法?如果不是,这些中哪一个更好,为什么?我很难在网上找到这么详细的东西,而且大多数书也没有这么深入。提前感谢您的任何指导。