InsertOnSumbit()上的System.InvalidOperationException

时间:2018-02-27 15:35:44

标签: c# asp.net linq linq-to-sql invalidoperationexception

我有一个数据库,其中有一个名为ProductLikes的表(有两列:UserIdProductId)。在我的asp.net webform应用程序中,我使用LINQ to SQL,并且我已经实现了.dbml文件。

访问(选择,更新,删除,插入)所有表格时,一切正常;除了我想在表ProductLikes中插入数据的时候。

我编写了一个在表中插入一行的方法。当它到达InsertOnSubmit方法时,System.InvalidOperationException抛出:

public bool ToggleLikeProduct(long productId, long userId)
{
    bool result = false;
    ProductLike productLike = db.ProductLikes.Where(i => i.UserId == userId && i.ProductId == productId).SingleOrDefault();
    if (productLike == null)
    {
        //Here:
        db.ProductLikes.InsertOnSubmit(new ProductLike { UserId = userId, ProductId = productId });
        result = true;
    }
    else
    {
        db.ProductLikes.DeleteOnSubmit(productLike);
        result = false;
    }
    db.SubmitChanges();
    return result;
}

问题是什么?

注意:其他所有内容,例如连接到SQL Server,实现LINQ to SQL类,传递参数,调用方法和...都是正确实现的。

0 个答案:

没有答案