使用数据注释从类到自身创建导航属性?

时间:2017-03-03 14:52:20

标签: c# entity-framework-6

首先使用Entity Framework Code我有一个类来保存下拉列表的数据。同一个类保存作为主列表中项目的子项的记录。最终,这将创建一组级联的下拉列表。

我试图找出如何使类链接的导航属性回归自身。问题类是我用来填充下拉列表的类。 Complaint类还有一个指向Issues类的链接,但不需要返回子类别的链接。

public class Issue
{
    public Issue()
    {
       Complaints = new List<Complaint>();
       SubIssues = new List<Issue>();
    }

    [Key]
    public int IssueID { get; set; }
    public string Name { get; set; }
    public bool IsSubCategory { get; set; }

    [ForeignKey("IssueID")]
    public ICollection<Issue> SubIssues { get; set; }

    public virtual ICollection<Complaint> Complaints { get; set; }
    }

public class Complaint
{
    public Complaint()
    {            
    }    
    public int ComplaintID { get; set; }
    public string Name {get; set;}

    [ForeignKey("IssueID")]
    public virtual Issue Issue { get; set; }         
}

1 个答案:

答案 0 :(得分:2)

我做了类似的事情,但实际上只在孩子们中有一个父参考。无论哪种方式,这应该工作。

void Interpreter::initializeExternalFunctions() {
  sys::ScopedLock Writer(*FunctionsLock);
  (*FuncNames)["lle_X_atexit"]       = lle_X_atexit;
  (*FuncNames)["lle_X_exit"]         = lle_X_exit;
  (*FuncNames)["lle_X_abort"]        = lle_X_abort;

  (*FuncNames)["lle_X_printf"]       = lle_X_printf;
  (*FuncNames)["lle_X_sprintf"]      = lle_X_sprintf;
  (*FuncNames)["lle_X_sscanf"]       = lle_X_sscanf;
  (*FuncNames)["lle_X_scanf"]        = lle_X_scanf;
  (*FuncNames)["lle_X_fprintf"]      = lle_X_fprintf;
  (*FuncNames)["lle_X_memset"]       = lle_X_memset;
  (*FuncNames)["lle_X_memcpy"]       = lle_X_memcpy;
}

它与常规的一对多关系相同,只是所有引用都在同一实体内。