我有一个数据库,其中有一个名为ProductLikes
的表(有两列:UserId
和ProductId
)。在我的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类,传递参数,调用方法和...都是正确实现的。