2014-03-27 63 views
0

我想出了今天下面的場景,在這裏我找到配置代碼首先流利的映射實體框架代碼首先映射 - 非外鍵

public class Employee 
{ 
    public int Id { get; set; } 
    public string ReferralCode { get; set; } 
    public string ReferedByCode{ get; set; } 

    public virtual ICollection<Employee> ReferedEmployee { get; set; } 

    public virtual Employee ReferedBy { get; set; } 
} 

困難每位員工將通過一些其他的員工被稱爲,這樣的員工將有很多被介紹的員工。 轉介將根據員工代碼不在ID。

如何爲此配置流暢映射?

+0

一對夫婦的澄清的問題:你還旺旺ID是員工的主鍵,或者這將是可以接受的ReferralCode是主鍵?另外,使用Id作爲外鍵而不是ReferralCode會產生什麼不良後果? –

+0

我需要Id想成爲主要關鍵。目前的系統已經推薦和推薦代碼oly .so我想用那個oly –

回答

0

我不相信這是可以配置導航屬性有其與除相關實體的主鍵以外的列/屬性外鍵。

的選項有:

  1. 更改爲ReferralCode
  2. 主鍵保持主鍵標識並執行以下操作:
    • 添加ReferredById柱和use this as the foreign key
    • Enable migrations(如果它們尚未啓用)。
    • 添加用於添加ReferredById列的遷移,並對其進行編輯,以便在調用Sql() method時運行SQL腳本,以根據現有的ReferredByCode列更新此新列中的值。