在LINQ语句中使用连接时出现错误:
'HalftimeHomeGoals不是匿名类型的成员;它在当前上下文中不存在'。
Dim HomeAllLP = (From a In db.Matches
Join b In db.MatchesLeagues On a.Id Equals b.Id
Where (a.HomeTeam = HomeTeam)
Order By a.Date Descending
Select a, b)
For Each y In HomeAllLP
If (y.HalfTimeHomeGoals > 0) Or (y.HalfTimeAwayGoals > 0) Then
HFHGL2 = HFHGL2 + 1
End If
Next
如果我只选择一个,它工作正常,但如果我尝试选择我的连接表,它也会出错,所以我无法访问我的连接表。
我已经查了一下,但是不理解我到目前为止找到的任何答案,而且它们都在C#中,我正在使用VB.NET。
答案 0 :(得分:2)
如果您需要select
这两种类型,它仍然是一种新类型。您可以在匿名类型的对象中选择它们,如
Dim HomeAllLP = (From a In db.Matches
Join b In db.MatchesLeagues On a.Id Equals b.Id
Where (a.HomeTeam = HomeTeam)
Order By a.Date Descending
Select New With {a, b})
然后在foreach中你可以获得a或b之类的属性
For Each y In HomeAllLP
If (y.a.HalfTimeHomeGoals > 0) Or (y.b.HalfTimeAwayGoals > 0) Then
HFHGL2 = HFHGL2 + 1
End If
Next
答案 1 :(得分:-1)
假设Matches和MatchesLeagues这两个类都包含一个名为HalfTimeHomeGoals的字段/属性,则以下代码应该有效:
For Each y In HomeAllLP
If (y.a.HalfTimeHomeGoals > 0) Or (y.b.HalfTimeHomeGoals > 0) Then
HFHGL2 = HFHGL2 + 1
End If
Next