从数据库中删除记录

时间:2014-02-17 18:15:07

标签: c# mysql asp.net-mvc linq

我正在创建一个包含类似按钮的项目。这一切都在删除记录之前一直在进行。

长删除会在数据库中返回正确的ID。这是代码。我显然错误地使用 db.Likes.Remove(删除)

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#的新手所以请保持简单=)谢谢。

1 个答案:

答案 0 :(得分:4)

如果您要删除商品,请不要选择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();
}