2013-05-22 36 views
0

我有现有的数据库与该模式:错误在实体框架的传承映射5

  • 表用户:用户ID,名字,姓氏
  • 表管理器:经理ID(PK,FK)
  • 表协调员:CoordinatorID(PK,FK)

的FKS指的是用户ID字段在表中用户

在实体方面,我有:

[Table("User")] 
public abstract partial class User 
{ 
    public int UserID { get; set; } 
     public virtual string LastName{ get; set; } 
    public virtual string Firstname{ get; set; } 

    } 

[Table("Manager")] 
public partial class Manager : User 
{ 
    public int ManagerID{ get; set; } 
    } 

[Table("Coordinator")] 
public partial class Coordinator: User 
{ 
    public int CoordinatorID{ get; set; } 
    } 

我的问题是,实体框架是寻找一个叫做Manager_UserID柱(一种外键的用户表)。但是这个列在我的数据库中不存在。有什么方法与模型数据库中正确映射在不改变数据库结构

感谢

回答

0

更改主键的名字,只是标识在每个表。 EF知道这意味着使主键

[更新]

既然你提到3个表,我想你需要每个类型继承TPT表描述 here 您需要提及用户的导航属性在你的经理类。也不要从用户继承。

public partial class Manager 
{ 
    public int ManagerID{ get; set; } 
    public virtual User Manager { get; set; } 
} 

另外,只有导航属性需要是虚拟的。不是字段属性,如名字,姓氏

也看看你的上下文是如何建立的。每个表应该有3个DBSets

+0

实际上,主键没有问题EF正在用户表中搜索管理器表中的外键。显示的消息是:**无效的列名'Manager_UserID'**。但在我的情况下,外键和主键是一样的。 – Oussama