如果我有一个像这样的表:

StudentId  | ... | SchoolId
___________|_____|__________
1          | ... | SchoolA
2          | ... | SchoolA
3          | ... | SchoolB
...

我想删除一个学校列表,从schoolA到schoolZ(使用LINQ-to-SQL):
foreach(School s in schools){
    db.Schools.DeleteOnSubmit(s);
    db.submitChanges();
}

由于上面的FK引用,SchoolASchoolB将失败

我如何继续并删除所有其他学校,而丢弃发生异常的学校?

最佳答案

仅包括没有学生的学校:

var schoolsToDelete = schools.Where(x => !x.Students.Any());
db.Schools.DeleteAllOnSubmit(schoolsToDelete);
db.submitChanges();

关于.net - Linq to SQL-删除,如果失败继续,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7245057/

10-13 06:06