Linq-to-Sql删除命令不工作
本文关键字:工作 命令 删除 Linq-to-Sql | 更新日期: 2023-09-27 18:08:17
下面是一个简单的Linq-to-SQL查询,用于删除与给定用户ID关联的地址记录。对我来说,它看起来是正确的,并且与我在网络上遵循的其他示例相匹配。然而,当我执行它时,记录没有被删除。并且没有返回错误消息。我做错了什么?
protected void Button1_Click(object sender, EventArgs e)
{
int UserID = 250;
SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();
var addresses = from a in db.Addresses
where a.UserID == UserID
select a;
foreach (var address in addresses)
{
try
{
db.Addresses.DeleteOnSubmit(address);
}
catch (Exception ex)
{
Label1.Text = ex.StackTrace.ToString();
}
}
}
您还没有在示例中提交任何更改。您只是将要在提交时保存的更改排在队列中。
要实际将更改写入数据库,您必须调用db.SubmitChanges();
您缺少一个
db.SubmitChanges();
由于您没有提交更改,因此删除将永远不会执行。
我做过这样的事情(未经测试)
protected void Button1_Click(object sender, EventArgs e)
{
int userID = 250;
SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();
var addresses = db.Addresses.Where(x => x.UserID == userId);
foreach (var address in addresses)
{
try
{
db.Addresses.DeleteOnSubmit(address);
db.SubmitChanges();
}
catch (Exception ex)
{
Label1.Text += ex.StackTrace.ToString();
}
}
}