2014-06-06 84 views
1

一些背景:我繼承了數據庫。其他應用程序正在運行,所以我不能改變結構。我們有一張僱員表和一張活動表。一些員工是主管,活動可以選擇指定一位主管,指出只有該特定主管可以讓他們的員工開展特定活動。在Entity Framework中映射可選的許多關係

數據庫設置的方式是,如果SupID字段不爲空,並且這是Activity中SupID列所指的字段,則僱員是監督員。

這裏是我的工作的類的一個示例:

public class Emp 
{ 
    public int EmpID { get; set; } 
    public string Fname { get; set; } 
    public string Lname { get; set; } 
    public int SupID { get; set; } 
    public virtual ICollection<Activity> SupervisedActivities { get; set; } 
} 

public class Activity 
{ 
    [Key] 
    public string ActNum { get; set; } 
    public int SupID { get; set; } 
    public virtual Emp Supervisor { get; set; } 
} 

說我有是,無論我如何映射這兩個類之間的關係,EF要涉及的SupID問題在活動上E​​mpID而不是SupID。是否有可能做我想在EF做什麼而不修改數據庫?

回答

0

不,你不能那樣做。

一直到EF6,不可能在1側使用AK(備用密鑰)進行1對多關係。 1方必須始終是父表中的PK。

MS有一個網站,你可以投票選出新的EF功能,而這通常是頂部需要的功能:Unique Constraint (i.e. Candidate Key) Support

您可以vote for it here,如果你想要的。

相關問題