我正在运行以下 LINQ 查询以进行分组CategoryID
var test = from x in ent.Products
group x by x.CategoryID into g
select new
{
x.EntityKey
};
但我收到以下错误:
当前上下文中不存在名称“x”
知道为什么吗?
我发现方法语法更容易遵循:
如果您想test
成为您的产品所属的 CategoryId 列表,请尝试:
var test = ent.Products.GroupBy(p => p.CategoryId)
.Select(g => g.Key)
那是因为 aftergroup
语句x
不再可用。你只能g
在那里使用。
你必须:
...
from something in g
select new {
something.EntityKey
}
一旦您将一组数据分组到一个组中,您用于查询数据的变量(在您的情况下是)对于语句x
变得不可用。select
分组后,您可以做的是使用组(在您的情况下是g
),您可以在下面的语句中访问g.Key
或查询g
并访问它:from
select
var test = from x in ent.Products
group x by x.CategoryID into g
from b in g
select b.EntityKey;
这是可能的,尽管我不能说这是最好的做法。(不是我说它不好,只是我很少看到这样的 LINQ 查询。我自己做过几次。)