2013-04-24 5 views
0

Я новичок в LinQ, у меня проблема с группой в linQ.
Я бледный запрос, как это:Использование LinQ с группой более чем одним столбцом

 
    select 
    MAX(TCheckpointGrouping.Id) AS CheckpointGroupingId, 
    MAX(TCheckpointGrouping.MCheckpointId) AS CheckpointId, 
    MAX(MCheckpoint.Name) AS CheckpointName, 
    MAX(CAST(MCheckpoint.IsMajor AS VARCHAR)) AS IsMajor, 
    MAX(TCheckpointGrouping.MIndicatorId) AS IndicatorId, 
    MAX(MIndicator.Name) AS IndicatorName, 
    MAX(MCriteria.Id) AS CriteriaId, 
    MAX(MCriteria.Name) AS CriteriaName, 
    MAX(MPrinciple.Id) AS PrincipleId, 
    MAX(MPrinciple.Name) AS PrincipleName, 
    MAX(TCheckpointGrouping.RelationToCheckPoint) AS RelationToCheckPoint 
    from TCheckpointGrouping 
    inner join MCheckpoint on MCheckpoint.Id = TCheckpointGrouping.MCheckpointId 
    inner join MIndicator on MIndicator.Id = TCheckpointGrouping.MIndicatorId 
    inner join MCriteria on MCriteria.Id = MIndicator.MCriteriaId 
    inner join MPrinciple on MPrinciple.Id = MCriteria.MPrincipleId 
    group by 
    TCheckpointGrouping.MCheckpointId, 
    TCheckpointGrouping.MIndicatorId

Как я могу конвертировать выше запрос в Linq (VB.NET)

благодаря bestRegards

+0

возможно дубликат [VB.NET LINQ группы по нескольким столбцам] (http://stackoverflow.com/questions/12482339/ В.Б-сетчатая-группа LINQ-на-множественные столбцы) – Neolisk

ответ

2

Я искушенный преобразовать этот SQL запрос LINQ для вас, но я думаю, что это будет пустой тратой времени для вас, чтобы научиться самому.

Есть отличная страница от Microsoft с множеством ситуаций VB.NET Linq: 101 Linq Samples.

Вы также можете найти пример Group By using Multiple Columns.

Хорошее обучение. :)

0

Я не уверен в этом, но вы можете попробовать. В отдельной части я не включил все столбцы.

var result= from TChkgp in TCheckpointGrouping 
     join MCpoint in MCheckpoint on TChkgp.Id equals MCpoint.Id 
    join MIndtor in MIndicator on TChkgp.MIndicatorId equals MIndtor.Id 
    join MCrteia in MCriteria on MIndtor.Id equals MIndtor.MCriteriaId 
    join MPrncple in MPrinciple on MCrteia.MPrincipleId equals MPrncple.Id 
    group TChkgp by new (TChkgp.MCheckpointId,TChkgp.MIndicatorId} into g 
    select new { 
    CheckpointGroupingId =TChkgp.Id.Max(), 
    CheckpointId =TChkgp.MCheckpointId.Max, 
    .... 
    .... 


    }; 

вы можете увидеть один простой пример на следующую ссылку

Group and sum in linq

Смежные вопросы