Посмотрите на этот запрос:
var user = GetUser(userId);
var sessionInvites = ctx.SessionInvites
.Include("InvitingUser")
.Include("InvitedUser")
.Where(e => e.InvitedUser.UserId == user.UserId)
.ToList();
var invites = sessionInvites;
// Commenting out the two lines below, and it works as expected.
foreach (var invite in sessionInvites)
ctx.DeleteObject(invite);
ctx.SaveChanges();
return invites;
Теперь все здесь выполняется без ошибок. Существующие для пользователя приглашения удаляются, а приглашения возвращаются с успехом.
Однако, когда я пытаюсь перейти к InvitingUser
или InvitedUser
на любом из возвращенных приглашений, я получаю NullReferenceException
. Все остальные свойства SessionIvites возвращены, отлично работает.
Как получилось?
[РЕДАКТИРОВАТЬ] Теперь странная вещь, если я закомментирую строки с удалением, это работает как ожидалось. (За исключением того, что объекты не будут удалены: S)