首页 > 解决方案 > 使用 LINQ 查询获取列表中的选定字段

问题描述

我有一个这样的实体框架生成类。

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';

我怎样才能做到这一点?

标签: c#sql-serverlinqentity-framework-6linq-query-syntax

解决方案


不要先选择所有记录,然后过滤您的数据。

如果你使用.ToList<DataControllers.TBLM_PRODUCT>()那么它可以选择所有记录。因此,您可以在向数据库发起查询时选择您的列,而不是这样做。

如果您TBLM_PRODUCT属于任何集合类型,例如IEnumerable<>or IQueryable<>then,

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();
}

推荐阅读