2013-05-22 62 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