我在MS Access中有一个查询,我正在尝试转换为vb.net。我正在迁移代码以使用Linq。
vba查询:
SELECT SS,TitleNo,(select count(*) from [VendorRpts] where Delivery=5 and not(OrderDate is null) and applicationsidnumber=AIN
and not(VendServCode=VendSCID )) as PrefVendorCount
From applications where applicationsidnumber=AIN
我开始写它:
Dim myApps = (From Apps In dc.APPLICATIONs
Where Apps.APPLICATIONSIDNUMBER = AIN
Select Apps.SS, Apps.TITLENO, )
但我不知道如何计算。 有人可以帮忙吗?
由于
EDIL
答案 0 :(得分:1)
每个记录的计数总是相同的,所以在LINQ中我会使用单独的查询:
Dim vendorReports = From vr In VendorRpts
Where vr.Delivery = 5 AndAlso
vr.OrderDate.HasValue AndAlso
vr.ApplicationsIdNumber = AIN AndAlso
vr.VendServCode <> VendSCID
Dim vendorReportsCount = vendorReports.Count()
Dim myApps = From Apps In dc.APPLICATIONs
Where Apps.APPLICATIONSIDNUMBER = AIN
Select Apps.SS, Apps.TitleNo, prefVendorCount = vendorReportsCount
请注意,如果在LINQ中需要correlated subquery,则以下是正确的语法:
Dim myApps = From Apps In dc.APPLICATIONs
Where Apps.APPLICATIONSIDNUMBER = AIN
Let vendorReports = From vr In VendorRpts
Where vr.Delivery = 5 AndAlso
vr.OrderDate.HasValue AndAlso
vr.ApplicationsIdNumber = Apps.AIN AndAlso
vr.VendServCode <> VendSCID
Select Apps.SS, Apps.TitleNo, prefVendorCount = vendorReports.Count()