[英]Get certain columns from many to many using EF Core
在多对多关系中,我只想从Referencia表中获取某些列(例如Id和Name)以填充选择列表。 问题是在使用Linq之前我还没有做过此事,而且我不知道执行此过程的最佳方法是什么。
这是我的模特。
public class Celula
{
public int Id { get; set; }
public string Nome { get; set; }
public string UAP { get; set; }
public ICollection<MatrizCelulaReferencia> Matrizes { get; set; }
}
public class Referencia
{
public int Id { get; set; }
public string Nome { get; set; }
public bool IsActivo { get; set; }
public ICollection<MatrizCelulaReferencia> Matrizes { get; set; }
}
public class MatrizCelulaReferencia
{
public int Id { get; set; }
public int CelulaId { get; set; }
public Celula Celula { get; set; }
public int ReferenciaId { get; set; }
public Referencia Referencia { get; set; }
public int ObjectivoHora { get; set; }
public int UAPId { get; set; }
public UAP UAP { get; set; }
public string Tipo { get; set; }
}
这是我当前的查询
var query = await _context.Referencias
.Include(r => r.Matrizes)
.ThenInclude(r => r.Celula)
.Where(r => r.Matrizes.Any(c => c.CelulaId == Operador.Celula))
.Select(x => new Referencia
{
Id = // Referencia Id
Nome = // Referencia Name
})
.ToListAsync();
现在这有点混乱,因为我不知道如何从该查询的Referencia表中选择某些列。 我只需要ID和名字
您传递给lambda的x
参数是Referencia
实例,因此您只需执行以下操作:
.Select(x => new Referencia
{
Id = x.Id
Nome = x.Nome
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.