我正在编写一个linq-to-sql查询以删除记录列表:我传入一个RecordID列表,并且希望删除相应的记录。

这是我到目前为止的内容:

public void DeleteMyRecords(List<long> TheRecordIDs)
{
   using (TheDC MyDC = new TheDC()) //TheDC is the DataContext
   {
       MyDC.DeleteOnSubmit(from a in MyDC.TheTable
                           where TheRecordIDs.Contains(a.RecordID)
                           select a).SubmitChanges();
   }
}


现在,我看到DeleteOnSubmit用红色下划线。您如何编写这样的查询以使其起作用?

谢谢你的帮助。

最佳答案

由于查询可能返回多个记录,因此您可能需要调用DeleteAllOnSubmit

var records = from a in MyDC.TheTable
                           where TheRecordIDs.Contains(a.RecordID)
                           select a;

MyDC.TheTables.DeleteAllOnSubmit(records);
MyDc.SubmitChanges();

10-04 18:39