导航属性混乱

时间:2018-10-24 13:24:29

标签: c# entity-framework

我是C#的新手,只要我知道导航属性使用Include扩展方法进行导航,我在数据库中就有两个表,第一个是:

[Key]
public int pc_group_id { get; set; }
public string pc_group_pattern { get; set; }
public string pc_group_name { get; set; }

第二个是:

[Key]
public int m_error_id { get; set; }
public string m_error_name { get; set; }
public int m_event_type_id { get; set; }
public string m_inv_error_details { get; set; }

以上表格可以用两个不同的名称(pc_group_patternm_inv_error_details)连接,但是值相同,现在我想知道是否可以使用Include关键字,如何我从两个表中都获取了数据吗?如果我对Include的定义和逻辑理解有误,有人可以向我解释吗?

1 个答案:

答案 0 :(得分:1)

字符串不可“导航”。 因此,如果要在实体之间共享字符串值,则必须将其“封装”在类中:

public class CA {
    public int Id {get; set;}
    public CC C {get; set; }
    public ICollection<CB> Bs {get; set;}
}

public class CC {
    public int Id {get; set;}
    public int AId {get; set;}
    public virtual CA A {get; set;}

    public string V {get; set;}
}    

public class CB {
    public int Id {get; set;}
    public int AId {get; set;}
    public virtual CA A {get; set;}

    public string V {get; set;}
}

在此示例中,导航属性为:

  • C,Bs
  • CC.A
  • CB.A

这不是全部。我只是尝试说明“导航属性”。