看看这个查询:
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 的所有其他属性都可以正常工作。
怎么会?
[编辑]现在奇怪的是,如果我用 delete 注释掉这些行,它会按预期工作。(除了实体不会被删除:S)