select a.* from Atleta a
inner join AtletiGare ag on ag.AtletaId=a.AtletaId
where ag.Pettorale=10
public class Atleta
{
[Required]
[Key]
public int AtletaId { get; set; }
public ICollection<AtletiGare> AtletiGare { get; set; }
}
public class AtletiGare
{
[Required]
[Key]
public int AtletiGareId { get; set; }
[Required]
public int AtletaId { get; set; }
public Atleta Atleta { get; set; }
public int Pettorale { get; set; }
}
IList<Atleta> atletaList = new List<Atleta>();
我需要通过atletigare.pettorale==10
过滤的所有atleta,但我会尝试将collection(_context.Atleta.Include(x => x.AtletiGare))
包含在atleta中,而atletiGare的集合不是过滤器
您可以尝试以下方法:
atletaList = (from a in db.Atleta
join ag in db.AtletiGare on ag.AtletaId equals a.AtletaId
where ag.Pettorale == 10
select new a()
{
AtletaId = a.AtletaId,
AtletiGare = a.AtletiGare
}).ToList();
关于您的评论,这是您想要做的另一种方式:
atletaList = (from a in db.Atleta
select new a()
{
AtletaId = a.AtletaId,
AtletiGare = a.AtletiGare.Where(y=> y.Pettorale == 10).ToList()
}).ToList();