使用代码优先在 SQL Server 数据库中存储对象列表
本文关键字:数据库 存储 对象 列表 Server SQL 代码 | 更新日期: 2023-09-27 18:33:11
示例
假设多项选择题的答案数量各不相同。一个问题只能有 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 中启用了代码优先迁移?
- 如果不适用,处理此类问题的最佳解决方案是什么?
您可以创建另一个类型为 PossibleAnswer 的对象,该对象将表示任何特定多项选择题的每个单独答案。 然后,将 MultipleChoiceQuestion 对象中的 Answers 属性修改为"列表"类型。 可能答案可以定义如下:
public class PossibleAnswer {
public Guid Id {get;set;}
public Guid MultipleChoiceQuestionId {get;set;}
public string Answer {get;set;}
}