Reputation: 3521
In a many to many relation i would like only to get certain columns from the Referencia table like Id and Name to populate a selectlist. Problem is that I haven't done this before using Linq and I don't understand what is the best way to do this process.
Here are my models.
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; }
}
Here is my current query
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();
Right now it's kinda of a mess because I have no idea how can I select certain columns from Referencia table in this query. I only need the Id and Name
Upvotes: 0
Views: 66
Reputation: 239440
The x
param you're passing to the lambda is a Referencia
instance, so you'd just do:
.Select(x => new Referencia
{
Id = x.Id
Nome = x.Nome
});
Upvotes: 1