每个类型的EF Code-First表,基类为DbSet

时间:2011-05-02 20:29:57

标签: .net inheritance mapping code-first entity-framework-4.1

我在基类的DataContext中有一个DbSet:

public DbSet<BaseClass> Users {get;set;}

我有2个派生类客户端和驱动程序。

两者都有一个外键AdminID。

当我获取特定类型的数据时,没有问题。

Users.OfType<Client>.ToList()

但是,如果我试图让客户端和驱动程序在代码生成中出现问题:

Users.ToList()

AdminID属性生成2次。

AdminID和AdminID1。

我认为sql生成器很混乱,因为我在两个类中都有AdminID但在父类中没有。

我不能将此属性放在父级中,因为我有另一个没有此属性的派生类。

这是一个错误还是我做错了什么。

1 个答案:

答案 0 :(得分:0)

不,不是bug。这是特征=限制。将属性移动到派生类后,它必须具有到数据库列的唯一映射。因此,您不能在两个派生类之间共享AdminId。每个类都有自己的外键列和关系。