Переменная недоступна с помощью dbContexts? - PullRequest
0 голосов
/ 31 мая 2011

У меня есть следующий код, который выдает ошибку при вызове getOccupants в разделе Использование dbPC. Есть ли способ сделать это значение доступным в Использование dbPC? Или лучший способ сделать это? Я попытался вложить Используя dbPC внутри Используя dbContext, но это также выдает ошибки.

  Protected Sub btnPushSemester_Click(sender As Object, e As EventArgs) Handles btnPushSemester.Click
    Dim dbPC As New Campus6Entities
    Dim dbContext As New pbu_housingEntities
    Using dbContext
        Dim get_Year = From p In dbContext.Configs _
                           Where p.Description = "year" _
                           Select p

        Dim get_Term = From p In dbContext.Configs _
                       Where p.Description = "term" _
                       Select p

        Dim thisYear = get_Year.First.textValue
        Dim thisTerm = get_Term.First.textValue
        Dim getOccupants = From p In dbContext.Residents _
                 Where p.semester = thisTerm _
                 Where p.year = thisYear _
                 Select p
    End Using
    Using dbPC
        For Each row In getOccupants
            Dim student_info = row
            Dim PCstudent = From r In dbPC.RESIDENCies _
                            Where student_info.people_code_id = r.PEOPLE_ID _
                            Where r.ACADEMIC_YEAR = thisYear _
                            Where r.ACADEMIC_TERM = thisTerm _
                            Select r

            For Each row2 In PCstudent
                Dim student_info2 = row2
                student_info2.DORM_BUILDING = student_info.Building1.building_code
                student_info2.DORM_ROOM = student_info.Room1.room1
                student_info2.RESIDENT_COMMUTER = "R"
                student_info2.DORM_CAMPUS = "O000000001"
                dbPC.SaveChanges()
            Next
        Next
    End Using

End Sub

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Из-за отложенного выполнения запрос фактически не выполняется, пока вы не выполните итерацию по коллекции, но к тому времени вы уже удалили объект dbContext. Попробуйте заключить весь код в блоки Using:

Using dbPC As New Campus6Entities
    Using dbContext As New pbu_housingEntities
        'rest of code here
    End Using
End Using
0 голосов
/ 31 мая 2011

Объявите getOccupants вне блока использования.Вы можете назначить его внутри блока, но вы должны объявить его снаружи, или он выйдет из области видимости, прежде чем вам действительно потребуется его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...