gpt4 book ai didi

c# - 如何将 Linq 动态查询结果转换为自定义类?

转载 作者:太空狗 更新时间:2023-10-29 23:48:42 25 4
gpt4 key购买 nike

通常,我这样做:

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

但是我有这样的代码:

var a = Products
.Where("ProductType == @0", "Tee Shirt")
.GroupBy("ProductColor", "it")
.Select("new ( Key, it.Count() as int )");

我可以更改什么语法来产生相同的结果,即我如何从第二个 Linq 语句中投影类别?

我知道 git 是相同的,代表整个表记录, 我把整个记录拉进来只是为了做一个计数。我也需要解决这个问题。 编辑: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()
});

Products 的类型仍应流经并可访问,并且常规分组/过滤不应改变流经扩展方法的类型。

关于c# - 如何将 Linq 动态查询结果转换为自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2536137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com