我有一个查询中的邮政编码列表(ThisInstructorsPostcodes)和另一个回退销售推介的查询(LastWeeksReferrals)
我使用以下语法来执行LEFT OUTER JOIN的linq等价物,所以我总是得到一个邮政编码,即使没有推荐它。
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对象中的引用整数。
我认为这样可行:
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) }
...但它没有 - 失败并出现错误:
匿名类型成员名称只能从没有参数的简单或限定名称推断。
我正在努力,因为我只使用了这个linq查询结构来模仿sql的外连接行为,有没有人知道如何解决这个问题,以便我的分组项不是匿名类型?
答案 0 :(得分:2)
我对VB.NET并不熟悉,但是您收到错误是因为您没有在匿名类型中设置属性名称。在select子句中尝试这个:
select new with {
.AreaDistrict= tip.AreaDistrict,
.ReferralSum =lwrgrpq.Sum(function(x) x.Referrals)
}