0
我试图了解我需要做什么才能在外键在基类中不存在时在多个派生类中引入相同的外键。外键是相同的类型,我可以使各种派生类都使用相同的列名,但是当我尝试引入外键注释时,实体框架6默默无法创建任何外键。实体框架6多个派生类中的代码优先TPH外键
值得一提的是,如果我允许EF创建Bar_Name1而不是重新使用现有列,它会适当地添加外键。但是我来自一个关系数据库背景,它冒犯了我的敏感性,为同一件事情拥有多个列。
我希望能够坚持使用注解来标记我的代码,但如果这是注解无法完成但可以使用Fluent API完成的事情,我愿意深入研究那。
public class Foo
{
[Key]
public string Name { get; set; }
}
public class FooSub1 : Foo
{
[Required, Column("Bar_Name")]
public string Bar_Name { get; set; }
[ForeignKey("Bar_Name")]
public Bar Bar { get; set; }
}
public class FooSub2 : Foo
{
[Required, Column("Bar_Name")]
public string Bar_Name { get; set; }
[ForeignKey("Bar_Name")]
public Bar Bar { get; set; }
}
public class Bar
{
[Key]
public string Name { get; set; }
}
感谢您的回复。 为了记录,我最终将所有的字段放在基表中的多个派生表中,并选择为我的应用程序创建接口来使用。通过接口限制底层对象的可用性是非常容易的,这可能是一种更好的方式来处理所有事情。 – 2014-12-05 21:04:05