Получить выбранные поля в списке, используя запрос LINQ - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть сгенерированный класс сущности, подобный этому.

public partial class TBLM_PRODUCT
{
    public string PRODUCT_CODE { get; set; }
    public string PRODUCT_DESC { get; set; }
    public string PRODUCT_ISBN { get; set; }
    public string PRODUCT_SUPPLIER { get; set; }
    public string PRODUCT_PROGROUP { get; set; }
}

Обычно я выбираю список элементов, как этот, используя запрос LINQ.

using ( AEntities RAEntity = new AEntities())
{
    RAEntity.TBLM_PRODUCT.ToList<DataControllers.TBLM_PRODUCT>();
}

Я хочу выбрать список элементов с двумя полями, подобными этим, как в следующем запросе

 select PRODUCT_CODE,PRODUCT_DESC from TBLM_PRODUCT where PRODUCT_PROGROUP='GG';

Как мне этого добиться?

Ответы [ 3 ]

0 голосов
/ 08 декабря 2018

Не выбирайте сначала все записи, а затем фильтруйте свои данные.

Если вы используете .ToList<DataControllers.TBLM_PRODUCT>(), тогда он может выбрать все записи.Поэтому вместо этого вы можете выбрать столбцы во время запроса к базе данных.

Если ваш TBLM_PRODUCT относится к какому-либо типу коллекции, например IEnumerable<> или IQueryable<>, тогда

using ( AEntities RAEntity = new AEntities())
{
    var result = RAEntity.TBLM_PRODUCT.Where(x => x.PRODUCT_PROGROUP == "GG").Select(x => new { x.PRODUCT_CODE, x.PRODUCT_DESC }).ToList();
}
0 голосов
/ 08 декабря 2018
using (AEntities RAEntity = new AEntities())
{
    var list= RAEntity.TBLM_PRODUCT
        .Where(p => p.PRODUCT_PROGROUP == "GG")
        .Select(p => new TBLM_PRODUCT { PRODUCT_CODE = p.PRODUCT_CODE, PRODUCT_DESC = p.PRODUCT_DESC })
        .ToList();
}
0 голосов
/ 08 декабря 2018
using ( AEntities RAEntity = new AEntities())
{
    var all = RAEntity.TBLM_PRODUCT.ToList<DataControllers.TBLM_PRODUCT>();
    var yourList = all
        .Where(x => x.PRODUCT_PROGROUP == "GG")
        .Select(p => new { p.PRODUCT_CODE, p.PRODUCT_DESC })
        .ToList();
}
...