Проблема в вашем запросе.Исключение выдается в вашем операторе if, потому что выполнение запроса откладывается до тех пор, пока его не нужно будет выполнить.Проблема в
Session("people_code_id")
Все, что в запросе LINQ, должно быть переведено в SQL для выполнения запроса.Entity Framework не может преобразовать метод получения элемента сеанса в SQL, поэтому он генерирует исключение.Попробуйте выдвинуть это в переменную перед запросом, например так:
Dim peopleCodeId = CStr(Session("people_code_id"))
Dim rhcexists = From p In dbContracts.Signatures _
Where p.StudentID = peopleCodeId _
And p.ContractType = "rhc" _
Order By p.ID Descending _
Select p
(Мой VB.NET немного заржавел, но я думаю, что это правильно)