Zac*_*ott 5 c# linq dynamicquery
通常,我这样做:
var a = from p in db.Products
where p.ProductType == "Tee Shirt"
group p by p.ProductColor into g
select new Category {
PropertyType = g.Key,
Count = g.Count() }
Run Code Online (Sandbox Code Playgroud)
但我有这样的代码:
var a = Products
.Where("ProductType == @0", "Tee Shirt")
.GroupBy("ProductColor", "it")
.Select("new ( Key, it.Count() as int )");
Run Code Online (Sandbox Code Playgroud)
我可以改变什么语法来产生相同的结果,即如何从第二个Linq语句中对Category进行投影?
我知道在这两者摹和它是一样的,代表整个表的记录,那我拉整条记录中只是做一个计数.我也需要解决这个问题. 编辑:Marcelo Cantos指出Linq非常聪明,不会提取不必要的数据.谢谢!
为什么你必须这么做?由于在 GroupBy 调用后您仍然拥有所有信息,因此您可以轻松执行以下操作:
var a = Products
.Where("ProductType == @0", "Tee Shirt")
.GroupBy("ProductColor", "it")
.Select(c => new Category {
PropertyType = g.Key, Count = g.Count()
});
Run Code Online (Sandbox Code Playgroud)
产品的类型仍应流经并可访问,并且常规分组/过滤不应改变流经扩展方法的类型。
| 归档时间: |
|
| 查看次数: |
3072 次 |
| 最近记录: |