问题描述
|
我有以下代码,在使用dbPC的getOccupants调用中引发错误。有没有一种方法可以在使用dbPC中使该值可访问?还是更好的方法来实现这一目标?我尝试在“使用dbContext”中嵌套“使用dbPC”,但这也会引发错误。
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
解决方法
在using块外声明
getOccupants
。您可以在块内分配它,但是必须在外部声明它,否则它会超出范围,然后才真正需要使用它。
, 由于执行延迟,因此直到您遍历集合之前,查询才真正执行,但是到那时,您已经处置了dbContext对象。尝试将所有代码包含在“使用”块中:
Using dbPC As New Campus6Entities
Using dbContext As New pbu_housingEntities
\'rest of code here
End Using
End Using