我正在创建一个包含“赞”按钮的项目。直到删除记录为止,一切都在进行。

long delete在数据库中返回正确的ID。这是代码。我显然是在以错误的方式使用db.Likes.Remove(delete)。

public ActionResult LikePicture(int userID, int pictureID)
    {
        Picture picture = new Picture();
        bool liked = picture.LikePicture(userID, pictureID);

        if (liked == true) //Remove Like
        {
            long delete = (from like in db.Likes
                     where userID == like.UserID && pictureID == like.PictureID
                     select like.LikeID).SingleOrDefault();


                     // Remove like from database
                     **db.Likes.Remove(delete);



        }
        else
        {
            // Add like to database
        }

        return RedirectToAction("Index");
    }


我一直在寻找db.Likes.DeleteOnSubmit(),但是intelesense没有给我这个选项,所以我尝试了删除。正如我将要回答的所有问题一样,我是C#的新手,所以请保持简单=)谢谢。

最佳答案

如果要删除项目,请不要选择ID

var item = (from like in db.Likes
                 where userID == like.UserID && pictureID == like.PictureID
                 select like).FirstOrDefault();


您可以使用FirstOrDefault避免异常,然后检查null和Remove该项目:

if(item != null)
{
    db.Likes.Remove(item);
    db.SaveChanges();
}

关于c# - 从数据库中删除记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21836400/

10-13 01:44
查看更多