次のクエリを見てください。
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
かに移動しようとすると、. 返された SessionIvites の他のすべてのプロパティは正常に動作します。InvitedUser
NullReferenceException
どうして?
[編集]奇妙なことに、deleteで行をコメントアウトすると、期待どおりに機能します。(エンティティが削除されないことを除いて:S)