2015-11-26 2 views
0

Я получаю сообщение об ошибке при использовании объединения в заявлении LINQ:Anonymous ошибка типа при использовании JOIN в 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

Как о 'y.a.HalfTimeHomeGoals'? –

ответ

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}) 

Тогда в Еогеасп вы можете Асесс свойства А или как

For Each y In HomeAllLP 
      If (y.a.HalfTimeHomeGoals > 0) Or (y.b.HalfTimeAwayGoals > 0) Then 
       HFHGL2 = HFHGL2 + 1 
      End If 
     Next 
-1

Предполагая, что оба класса Спички и MatchesLeagues содержит поле/свойство с именем HalfTimeHomeGoals следующий код должен работать:

For Each y In HomeAllLP 
    If (y.a.HalfTimeHomeGoals > 0) Or (y.b.HalfTimeHomeGoals > 0) Then 
     HFHGL2 = HFHGL2 + 1 
    End If 
Next 
Смежные вопросы