使用代码优先存储SQL Server数据库中的对象列表

时间:2014-12-04 14:47:50

标签: c# asp.net sql-server ef-migrations

实施例

让我们说多项选择题的答案数量各不相同。一个问题只能有2个选项,而另一个问题可以有10个选择。

如何在SQL Server数据库中保存这些多项选择题?以下模型是否可行?

public class MultipleChoiceQuestion
{
    [Key]
    public Guid Id { get; set; }

    [Required]
    public string Question { get; set; }

    // Suppose I can have 2-10 answers
    [Required]
    public List<string> Answers { get; set; }
}

问题

  • 我们可以在SQL Server数据库中存储具有不同长度的对象列表,并在ASP.NET中启用代码优先迁移吗?
  • 如果不适用,处理此类问题的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:2)

您可以创建另一个类型为PossibleAnswer的对象,该对象将代表任何特定多项选择问题的每个答案。然后,您可以将MultipleChoiceQuestion对象中的Answers属性修改为List类型。 PossibleAnswer可以定义如下:

 public class PossibleAnswer {
      public Guid Id {get;set;}
      public Guid MultipleChoiceQuestionId {get;set;}
      public string Answer {get;set;}
 }