Linq:如何在与值无关且具有动态列的分组查询中获得结果

  • 本文关键字:动态 查询 结果 Linq c# vb.net linq
  • 更新时间 :
  • 英文 :


我有一个名为Foo的表,我有两列:Lorem和Ipsum,所以表的方案是:

Foo(Lorem, IpsumID)

我还有一个名为IpsumTypes的表,它看起来像这样:

IpsumTypes(IpsumID, IpsumName)

我想编写一个 LINQ 查询,它将产生以下结果:

Headers: Lorem, IpsumName1, IpsumName2, ..., IpsumNamen值: Loremi, count(IpsumName1), ..., count(IpsumNamen)

每行表示一组 Lorem 值和组中每个可能的 IpsumID 的数量。可以将新行添加到 IpsumType 表中,也可以删除行,因此我需要动态生成的列,因为在编写代码时,我不知道 Ipsum 的可能值。我怎样才能做到这一点?是否有一个神奇的 Linq 查询可以解决此问题,或者如果速度很重要,我应该从数据库中获取值并单独解析它们?

提前感谢您的回复。

此查询从数据库中获取所需的值。 从那里,您可以投影到 xml 或程序可以理解的其他动态形状中。

from foo in Foo
let name = foo.IpsumType.IpsumName
group foo by new
{
  Lorem = foo.Lorem,
  Name = name
} into g
select new
{
  Lorem = g.Key.Lorem,
  Name = g.Key.Name,
  Count = g.Count()
};

我认为您正在寻找 PIVOT SQL 语句。但是没有 LINQ 等效项,因此您应该改用 SQL 并自行分析返回的数据。

相关内容

  • 没有找到相关文章

最新更新