EF如何转换此查询SQL?

问题描述 投票:1回答:1
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的集合不是过滤器

c# entity-framework .net-core
1个回答
0
投票

您可以尝试以下方法:

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();
© www.soinside.com 2019 - 2024. All rights reserved.