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();

它找到了 erntry 并尝试将其删除,但删除后,它并没有删除整行,它只是删除了表中 UserID 的值。我在这里想念什么?当我这样做时。添加它工作正常..

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 回答