代码之家  ›  专栏  ›  技术社区  ›  Jonathan

在同一linq查询中检索两个值

  •  0
  • Jonathan  · 技术社区  · 16 年前

    我从linqToSql开始,在进行查询时仍然存在一些问题。

      int totalElements;
      IEnumerable<ClsTax> result;
      result = (from t in db.tax 
               select new ClsTax { Tax = t.tax1, Increase = t.increase }).Take(25);
    
      totalElements = (from t in db.tax 
                 select new ClsTax { Tax = t.tax1, Increase = t.increase }).Count();  
    

    如您所见,我不能使用result.count(),因为我使用Take(25)只获取前25个元素,我想知道数据库中有多少元素。

    是否有任何方法可以仅使用一个linq查询来获取这两个值?

    2 回复  |  直到 16 年前
        1
  •  3
  •   user191152 user191152    16 年前

    怎么样:

    var all = (from t in db.tax select new ClsTax { Tax = t.tax1, Increase = t.increase });
    var count = all.Count();
    var result = all.Take(25);
    

    简单一点?

        2
  •  1
  •   k0ni    16 年前

    试试这个:

    var result = (from t in db.tax group t by t.ID into g select new { Tax = g.First().tax1, Increate = t.First().Increase, TotalElements = g.Count() });