繁体   English   中英

EF代码优先-如何为不同类型的父母使用的子对象表指定外键名称

[英]EF Code First - How do you specify foreign key name for child object table used by different type of parents

我有一些看起来像这样的对象:

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表。 但是,它将创建以下列:

  • ID
  • 名称
  • DropDownField_Id
  • RadioButtonField_Id

我想看到的只是此表中的一个Field_Id,因为字段的ID在不同类型的字段中必须是唯一的。

有没有办法做到这一点? 我已经做了一些搜索,但是我一定不知道要使用正确的搜索词来找到答案。

恕我直言,从关系数据库的角度来看,您想要的是一列(Option.FieldId),它是2个表DropDownField和RadioButtonField的外键。

也就是说,无论何时插入选项,FieldId都必须引用现有的DropDownField和现有的RadioButtonField。

那至少很奇怪。

我认为这不可能/应该实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM