2015-09-08 63 views
1

我是新來的LINQ,所以它似乎很複雜。如何使用linq修改表格佈局?

我有這個表中的數據庫:

enter image description here

我取使用LINQ表記錄到實體:

var inspectionsData = context.Set<inspectionsData>().ToList(); 

現在我需要做一些邏輯,使inspectionsData看起來像:

enter image description here

正如你可以看到行的城市和權力是相同的,我想他們在一行中的總結項目。 如何在c#中使用linq進行這些更改?

+0

能否請您發佈數據「檢查數據」模型 –

回答

6

您可以使用GroupBy聲明執行此操作,然後使用Select投影到新對象。

var result = context.Set<inspectionsData>() 
        .GroupBy(d => new {d.City, d.Authority}) 
        .Select(g => new {g.Key.City, g.Key.Authority, Items = g.Sum(x => x.Items)}) 
        .ToList(); 

使用匿名對象作爲迴應,但是作爲你的迴應卻有着相同的形狀,初始對象,你也可以投射回inspectionsData

var result = context.Set<inspectionsData>() 
        .GroupBy(d => new {d.City, d.Authority}) 
        .Select(g => new inspectionsData{ 
           City = g.Key.City, 
           Authority = g.Key.Authority, 
           Items = g.Sum(x => x.Items)}) 
        .ToList(); 
+0

@爵士謝謝你的回答。但如果我有權限表,它與上面的表有關的許多兩個(我的意思是相關查詢表中的權威)? – Michael