简体   繁体   English

实体框架删除了许多记录

[英]Entity Framework remove a number of records

Entity Framework delete a number of records 实体框架删除一些记录

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.
}

You could use: 您可以使用:

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

Try this: 尝试这个:

 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();
    }

currently to remove multiple records you need to first get records in memory then remove them. 当前要删除多个记录,您需要先将记录保存到内存中,然后再删除它们。 another solution is that you can use EntityFramework.Extended library to make this a single request process. 另一个解决方案是您可以使用EntityFramework.Extended库将其设为单个请求过程。 like 喜欢

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM