2011-12-16 96 views
1

我有郵政編碼的列表中查詢(ThisInstructorsPostcodes)和拉回銷售推薦(LastWeeksReferrals)如何獲得我的分組查詢中項目的總和?

我使用下面的語法來執行LINQ相當於LEFT OUTER的另一個查詢JOIN所以我總是得到一個郵政編碼回來,即使沒有推薦它。

 dim final = from tip in ThisInstructorsPostcodes _ 
     group join lwr in LastWeeksReferrals on tip.PostcodeID equals lwr.PostcodeID Into lwrgrp = group _ 
     from lwrgrpq in lwrgrp.DefaultIfEmpty _ 
     select new with {tip.AreaDistrict, lwrgrpq } 

    final.dump() 

我得到的結果是所以接近我所需要的,但我在lwrgrpq列,我想要做的事情得到了一堆InstructorReferrals對象是所有的「推介的簡單相加這些InstructorReferrals對象中的整數。

Results in LinqPad

我想這會工作:

 dim final = from tip in ThisInstructorsPostcodes _ 
     group join lwr in LastWeeksReferrals on tip.PostcodeID equals lwr.PostcodeID Into lwrgrp = group _ 
     from lwrgrpq in lwrgrp.DefaultIfEmpty _ 
     select new with {tip.AreaDistrict, lwrgrpq.Sum(function(x) x.Referrals) } 

...但事實並非如此 - 失敗,出現錯誤:

Anonymous type member name can be inferred only from a simple or qualified name with no arguments.

我掙扎,因爲我有隻使用這個linq查詢結構來模仿sql的外連接行爲,沒有人知道我該如何解決這個問題,以便我的分組項不是匿名類型?

回答

2

我對VB.NET並不熟悉,但是您收到錯誤是因爲您沒有設置匿名類型的屬性名稱。在select子句中試試這個:

select new with { 
        .AreaDistrict= tip.AreaDistrict, 
        .ReferralSum =lwrgrpq.Sum(function(x) x.Referrals) 
       }