Я подозреваю, что проблема в этой строке:
Where p.occupant = find_id.FirstOrDefault.id _
Оба они одного типа? Причина, по которой я подозреваю эту строку, заключается в том, что в другой таблице ранее вы используете occupant
в качестве имени человека. Я бы проверил, что другие значения в ваших предложениях where также соответствуют типам, с которыми вы их сравниваете.
Причина, по которой может показаться, что ошибка находится в строке назначения, заключается в том, что запрос не выполняется, пока вы не запустите на нем First
. Ошибка, скорее всего, в запросе, а не в присваивании.