【发布时间】:2014-11-25 15:02:12
【问题描述】:
我有一些看起来像这样的对象:
abstract public class Field
{
public int Id { get; set; }
public string Name { get; set; }
public int Ordinal { get; set; }
}
[Table("DropDownField")]
public class DropDownField : Field
{
public virtual List<FieldOption> Options { get; set; }
}
[Table("RadioButtonField")]
public class RadioButtonField : Field
{
public virtual List<FieldOption> Options { get; set; }
}
public class FieldOption
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
在我的数据库中,它最终使用 Code First 创建了一个 FieldOptions 表。但是,它会创建以下列:
- 身份证
- 姓名
- 价值
- DropDownField_Id
- RadioButtonField_Id
我希望看到的只是此表中的一个 Field_Id,因为字段的 Id 在不同类型的字段中必须是唯一的。
有没有办法做到这一点?我已经进行了一些搜索,但我一定不知道用于查找答案的正确搜索词。
【问题讨论】:
-
在您的情况下,您可以尝试将列表放在基类上。
-
我可以这样做,但是还有其他字段类型(例如 TextBoxField)不需要包含选项。我只是没有将它们包含在示例中。
标签: c# sql-server entity-framework ef-code-first code-first