InverseProperty(字串)屬性
using System.ComponentModel.DataAnnotations.Schema;
public class Department
{
...
public virtual ICollection<Employee> PrimaryEmployees { get; set; }
public virtual ICollection<Employee> SecondaryEmployees { get; set; }
}
public class Employee
{
...
[InverseProperty("PrimaryEmployees")]
public virtual Department PrimaryDepartment { get; set; }
[InverseProperty("SecondaryEmployees")]
public virtual Department SecondaryDepartment { get; set; }
}
InverseProperty 可以用來識別雙向時,關係多雙向兩個實體之間存在的關係。
它告訴實體框架它應該與另一側的屬性匹配哪些導航屬性。
當兩個實體之間存在多個雙向關係時,實體框架不知道哪個導航屬性對映與另一側的屬性。
它需要相關類中相應導航屬性的名稱作為其引數。
這也可以用於與相同型別的其他實體有關係的實體,形成遞迴關係。
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
public class TreeNode
{
[Key]
public int ID { get; set; }
public int ParentID { get; set; }
...
[ForeignKey("ParentID")]
public TreeNode ParentNode { get; set; }
[InverseProperty("ParentNode")]
public virtual ICollection<TreeNode> ChildNodes { get; set; }
}
另請注意,使用 ForeignKey
屬性指定用於表上外來鍵的列。在第一個示例中,Employee
類上的兩個屬性可能已應用 ForeignKey
屬性來定義列名稱。