我正在按照LINQ查询运行,以便按CategoryID
var test = from x in ent.Products
group x by x.CategoryID into g
select new
{
x.EntityKey
};
但我收到以下错误:
当前上下文中不存在名称“x”
知道为什么吗?
答案 0 :(得分:2)
我发现方法语法更容易理解:
如果您希望test
成为您的产品所属的CategoryId列表,请尝试:
var test = ent.Products.GroupBy(p => p.CategoryId)
.Select(g => g.Key)
答案 1 :(得分:1)
那是因为在group
语句x
不再可用之后。您只能在那里使用g
。
答案 2 :(得分:1)
你必须:
...
from something in g
select new {
something.EntityKey
}
答案 3 :(得分:1)
只要您将一组数据分组到一个组中,用于查询数据的变量(在您的情况下为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查询。我自己做了几次。)< / p>