0

ここに私のコードがあります:

User user = db.Users.Where(u => u.ID == userInSession.ID).FirstOrDefault();
            UserItem UI = user.UserItems.Where(ui => ui.User == user && ui.Item == item&& ui.IsFavourite == true).FirstOrDefault();
            if (UI == null)
            {
                return false;
            }
            else
            {
                user.UserItems.Remove(UI);
                return true;
            }
            db.SaveChanges();

エラーを見つけて削除しようとしますが、削除した後、行全体を削除するのではなく、テーブル内の UserID の値を削除するだけです。ここで何が欠けていますか?私がするとき.Addは正常に動作します..

4

2 に答える 2

2

db.UserItems.Remove実際のオブジェクトを削除するために使用します。また、以下のように、その特定の userSessionId に対して UserItems が存在するかどうかを確認する単一のクエリを作成できます。

var UI = db.UserItems.Where(ui => ui.User.ID == userInSession.ID && ui.Item == item && ui.IsFavourite == true).FirstOrDefault(); 
于 2012-08-10T23:33:45.800 に答える
1

コードで行っていることは、ユーザー アイテムからユーザーへのマッピングを削除することです。使用しているデータ コンテキストでユーザー アイテムを削除する必要があります。

于 2012-08-10T23:04:47.673 に答える