【问题标题】:Get selected fields on a list using a LINQ query使用 LINQ 查询获取列表中的选定字段
【发布时间】:2018-12-08 05:37:29
【问题描述】:

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

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-server linq entity-framework-6 linq-query-syntax


    【解决方案1】:
    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();
    }
    

    【讨论】:

      【解决方案2】:

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

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

      如果您的TBLM_PRODUCT 属于任何集合类型,例如IEnumerable&lt;&gt;IQueryable&lt;&gt;,那么,

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

      【讨论】:

        【解决方案3】:
        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();
        }
        

        【讨论】:

        • 您能否评论并解释您的答案,以便其他用户更好地理解它?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-08
        • 2021-12-30
        • 2022-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多