我从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查询来获取这两个值?
谢谢!
答案 0 :(得分:3)
怎么样:
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);
有点简单?
答案 1 :(得分:1)
试试这个:
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() });