簡體   English   中英

Linq:如何在與值無關且具有動態列的分組查詢中獲得結果?

[英]Linq: How can I get a result in a grouping query which is value agnostic and has dynamic columns?

我有一個名為Foo的表,我有兩列:Lorem和Ipsum,所以表的方案是:

Foo(Lorem, IpsumID)

我還有一個名為IpsumTypes的表,如下所示:

IpsumTypes(IpsumID, IpsumName)

我想寫一個LINQ查詢,它將得到以下結果:

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

每行代表一組Lorem值和組中每個可能的IpsumID的數量。 可以將新行添加到IpsumTypes表中,也可以刪除行,因此我需要動態生成的列,因為在編寫代碼時我不知道Ipsum的可能值。 我怎樣才能做到這一點? 是否有一個神奇的Linq查詢解決了這個問題,或者我應該從數據庫中獲取值並單獨解析它們,如果速度很重要?

提前感謝您的回復。

我想你正在尋找PIVOT SQL語句。 但是沒有LINQ等價物,所以你應該使用SQL來自己解析返回的數據。

此查詢從數據庫中獲取所需的值。 從那里,您可以投影到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()
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM