Asp.Net MVC使用多对多关系与映射表到达属性

时间:2013-12-11 22:38:16

标签: c# asp.net linq asp.net-mvc-4 ef-code-first

您可以看到我之前的question与多对多关系但与自动生成的映射表有关。

我有2个型号,HrTraining和HrPerson。任何人都可以被分配到一个或多个培训。你可以看到我的模型如下

public class HrTraining
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<HrMapTrainingPerson> HrMapTrainingPerson { get; set; }
}

public class HrMapTrainingPerson
{
    public int Id { get; set; }
    public string Status { get; set; }
    public int HrTrainingId { get; set; }
    public int HrPersonId { get; set; }
    public virtual HrTraining HrTraining { get; set; }
    public virtual HrPerson HrPerson { get; set; }
}

public class HrPerson
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<HrMapTrainingPerson> HrMapTrainingPerson { get; set; }
}

如何以有效的方式拍摄所有训练对象。

1 个答案:

答案 0 :(得分:0)

所以你想找一个人,并获得分配给它的所有培训?有很多方法..但使用你的模型,这可能是这样的

var trPersons = dbContext.HrPerson.Find(idPerson).HrMapTrainingPerson.ToList();

foreach(var trPerson in trPersons) {

    var training = trPerson.HrTraining;

    //do what you want, here you can get trPerson.HrTraining.Name for instance

}