2012-06-22 134 views
0

我有以下LINQ查詢:LINQ GROUPBY和計數

From metasect In DirectCast(Form.ChildDocBox.Tag, META_DOCUMENT).META_SECTIONS 
From metaset In metasect.META_SETS 
From metacell In metaset.META_CELLS 
From lookup In metacell.CHILD_META_CELL_CELLS_LOOKUPS 
Where lookup.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_DOCUMENT.META_DOC_ID = docToDelete.META_DOC_ID 
Select metasect.META_SECT_NAME + " gets from " + lookup.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_SECT_NAME Distinct 

選擇指示,選擇可重複的表達,因爲有多個查找在同一對夫婦父母和孩子的metasections,這就是爲什麼我加了一個不同條款。

現在,我想要計算每個父/子對夫婦有多少查找。提前任何建議:)

回答

0

我用2步方法

Dim all = From metasect In DirectCast(Form.ChildDocBox.Tag, META_DOCUMENT).META_SECTIONS 
      From metaset In metasect.META_SETS 
      From metacell In metaset.META_CELLS 
      From lookup In metacell.CHILD_META_CELL_CELLS_LOOKUPS 
      Where lookup.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_DOCUMENT.META_DOC_ID = docToDelete.META_DOC_ID 
      Select lookup 


For Each grp As IGrouping(Of String, ICELLS_LOOKUP) In 
     all.GroupBy(Function(l) l.CHILD_META_CELL_META_CELL.META_SET.META_SECTION.META_SECT_NAME + " gets from " + l.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_SECT_NAME) 

    'do some stuff with grp.Key() & grp.Count()' 

Next 
解決

喜歡的東西

SELECT metasect.META_SECT_NAME + " gets from " + lookup.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_SECT_NAME, 
     COUNT(lookup) 
FROM ... 
WHERE ... 
GROUP BY metasect.META_SECT_NAME + " gets from " + lookup.PARENT_META_CELL_META_CELL.META_SET.META_SECTION.META_SECT_NAME 

謝謝