C#ASP.NET MVC:如何从Entity Framework中的列表返回的ID列获取元素列表

时间:2019-07-02 10:48:55

标签: c# asp.net-mvc entity-framework

我必须创建2个列表,我正在寻找最佳实践,并最终寻求单行语法!

我正在使用Entity Framework,并且有3个表:

public class Position 
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class Training 
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Association 
{
    public int Id { get; set; }
    public Impact Impact { get; set; }

    public int TrainingId { get; set; }
    public virtual Training Training { get; set; }
    public int PositionId { get; set; }
    public virtual Position Position { get; set; }
}

public enum Impact 
{
    Optional,
    Mandatory
}

我必须选择Association表中提到的所有培训为必选或可选(我的意思是必须在Impact列中填充Impact.Optional)和{{1 }}是我通过参数或其他方式给它的!

我该怎么做?

2 个答案:

答案 0 :(得分:1)

尝试一下

public List<Training> GetOptionalTrainings(int positionId)
{
  _context.Associations
    .Where(a => a.Impact == Impact.Optional && a.PositionId == positionId)
    .Select(a => a.Training)
    .ToList();
}

答案 1 :(得分:0)

enter image description here

请注意,您的关系是1-1,协会将始终接受培训, 如果您想要0或1关系,则可以将public int TrainingId更改为public int? TrainingId

已更新