C# 使用linq to sql从多个表中删除时的外键约束问题
我有两个带有外键约束的表。如何在一个事务中从这两个表中删除行?LINQtoSQL似乎以错误的顺序调用了我的删除。是否有地方可以检查并确保linq到SQL正确识别约束C# 使用linq to sql从多个表中删除时的外键约束问题,c#,asp.net,linq-to-sql,C#,Asp.net,Linq To Sql,我有两个带有外键约束的表。如何在一个事务中从这两个表中删除行?LINQtoSQL似乎以错误的顺序调用了我的删除。是否有地方可以检查并确保linq到SQL正确识别约束 DataContext.OtherImages.DeleteOnSubmit(myOtherImage); DataContext.Images.DeleteOnSubmit(myImage); DataContext.SubmitChanges(); 外键约束在其他图像上。谢谢 你应该吃点 [Association(
DataContext.OtherImages.DeleteOnSubmit(myOtherImage);
DataContext.Images.DeleteOnSubmit(myImage);
DataContext.SubmitChanges();
外键约束在其他图像上。谢谢 你应该吃点
[Association(
Name="FK_OtherImages_Images",
Storage="_OtherImages",
OtherKey="ImageId",
DeleteRule="NO ACTION")]
public EntitySet<OtherImage> OtherImages{
...
}
应该行得通。我猜你忘了另一把外键。您可以通过执行以下操作查看正在运行的查询
DataContext.Log = Console.Out;
或者类似的东西。我不建议仅仅为了让这项工作而级联删除,因为它不需要这样做就可以工作。简单逻辑
设置外键关系
转到选项::表设计器
“SQL似乎以错误的顺序调用了我的删除。”-你确定吗?。是的,应该是这样的,但是为什么外键约束会出错呢?如果它按照我的顺序执行,应该没有问题,对吗?它可能不是对您问题的回答,但您可以创建外键,以便在删除
图像
表中的行时,它会自动删除表中引用的其他图像
中的行。在这里@mozillanerd查看关于DELETE CASCADE的,:在我发布的SO链接中给出了相同的建议……这是我忘记的调整表的另一个键。谢谢
DataContext.Log = Console.Out;