使用linq-to-sql删除记录列表

时间:2012-09-27 16:27:53

标签: c# linq-to-sql

我正在写一个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用红色加下划线。你如何编写这样的查询以使其有效?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

由于查询可能会返回多条记录,您可能需要调用DeleteAllOnSubmit

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

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