C# C ASP.NET MVC:如何在实体框架中通过从列表返回的id列获取元素列表

C# C ASP.NET MVC:如何在实体框架中通过从列表返回的id列获取元素列表,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我必须创建2个列表,我正在寻找最佳实践和最终的单行语法 我使用的是实体框架,我有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 clas

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

我使用的是实体框架,我有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
}
我必须选择关联表中提到的所有培训,作为强制性或可选的,我的意思是必须用Impact填充Impact列。可选的,PositionId是我通过参数或其他方式提供的

我该怎么做呢?

试试这个

public List<Training> GetOptionalTrainings(int positionId)
{
  _context.Associations
    .Where(a => a.Impact == Impact.Optional && a.PositionId == positionId)
    .Select(a => a.Training)
    .ToList();
}
请注意,您的关系是1-1,协会将始终接受培训, 如果需要0或1关系,可以将public int TrainingId更改为public int?培训ID


更新了

到目前为止您尝试了什么?这是您需要的吗?var result=db.Asociation.Wherex=>x.Impact==Impact.YOUR\u Impact&&PositionId==YOUR\u ID@马特几乎是的,有了这个,我怎么能得到一系列的训练!您的语法过滤了正确的关联,我想使用TrainingId获取培训列表!请检查下面的答案,然后重试