Получить определенные столбцы от многих ко многим, используя EF Core - PullRequest
0 голосов
/ 12 июня 2019

В отношении многих ко многим я хотел бы только получить определенные столбцы из таблицы 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.Мне нужен только идентификатор и имя

1 Ответ

1 голос
/ 12 июня 2019

Параметр x, который вы передаете лямбде, является экземпляром Referencia, поэтому вы просто должны сделать:

.Select(x => new Referencia
{
    Id = x.Id
    Nome = x.Nome
});
...