簡體   English   中英

EF中多個成員的相同類型之間的自引用關聯

[英]Self referencing association between same types in EF for multiple members

我有一個從“ IdentityUser”繼承的員工類。

  public class Employee : IdentityUser
    { 
       public String Name { get; set; }
       public string ManagerID { get; set; }
       public virtual Employee Manager { get; set; }
    } 

這工作正常,但是當我添加相同類型的另一個屬性時,例如

public virtual Employee TeamLead { get; set; }

它引發以下異常:

無法確定類型'eHRMS.DAL.Models.Employee'和'eHRMS.DAL.Models.Employee'之間的關聯的主要終點。 必須使用關系流利的API或數據注釋顯式配置此關聯的主體端

附加說明:我希望TeamLead是可選的,而Manager是必需的。

更新我真正想要的是要有一個雇員列表,每個雇員可以有一個TeamLead(也是雇員類型),並且必須有一個經理(也是雇員類型)。 經理是必需的,這意味着將有至少一名員工擔任經理。

該錯誤消息告訴您,它不知道哪個實體取決於哪個實體。

使用Fluent API,您可以告訴modelbuilder,它是依賴的,並且是可選的:

modelBuilder.Entity<Employee>()
            .HasOptional(f => f.TeamLead)
            .WithRequired(s => s.Manager);

如果員工需要經理,則可以使用DataAnnotations解決此問題:

public class Employee : IdentityUser
{ 
   public String Name { get; set; }
   public string ManagerID { get; set; }

   [Required]
   public virtual Employee Manager { get; set; }

   public virtual Employee TeamLead { get; set; }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM