实体框架删除了许多记录

时间:2014-03-27 11:19:49

标签: c# asp.net-mvc asp.net-mvc-3

实体框架删除了一些记录

using (Galway__Entities db = new Galway__Entities())
{
    DateTime RemovableDate = new DateTime();

    List<PROJ_ACCS_StockControl_DeletedPLURecord> DeletedPLURecords = db.PROJ_ACCS_StockControl_DeletedPLURecord.Where(x => x.TimeStamp <= RemovableDate).ToList();

    db.??????
    //so I delete the list all at once or use a foreach and run round each record?
    //how do I delete each singular record if this is the case then.
}

3 个答案:

答案 0 :(得分:2)

您可以使用:

DeletedPLURecords.ForEach(element => db.PROJ_ACCS_StockControl_DeletedPLURecord.Remove(element));
db.SaveChanges();

答案 1 :(得分:1)

试试这个:

 using (Galway__Entities db = new Galway__Entities())
    {
      DateTime RemovableDate = new DateTime();
      List<PROJ_ACCS_StockControl_DeletedPLURecord> DeletedPLURecords = db.PROJ_ACCS_StockControl_DeletedPLURecord.Where(x => x.TimeStamp <= RemovableDate).ToList();

      foreach (var item in DeletedPLURecords)
      {
          var e = db.PROJ_ACCS_StockControl_DeletedPLURecord.Find(item.Id);
          if (e != null)
          {
               Db.PROJ_ACCS_StockControl_DeletedPLURecord.Remove(e);
          }
      }
      db.SaveChanges();
    }

答案 2 :(得分:0)

目前要删除您需要先在内存中获取记录的多条记录,然后将其删除。 另一种解决方案是,您可以使用EntityFramework.Extended库将其作为单个请求进程。像

....
db.PROJ_ACCS_StockControl_DeletedPLURecord.Where(x => x.TimeStamp <= RemovableDate).Delete();