【问题标题】:Entity Framework remove a number of recordsEntity Framework 删除多条记录
【发布时间】:2014-03-27 11:19:49
【问题描述】:

实体框架删除多条记录

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

【问题讨论】:

  • 如果您使用的是 EF6,请检查 this question。建议使用RemoveRange方法。

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


【解决方案1】:

你可以使用:

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

      【解决方案3】:

      目前要删除多条记录,您需要先在内存中获取记录,然后再删除它们。 另一种解决方案是您可以使用EntityFramework.Extended 库来使其成为单个请求过程。喜欢

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-27
        • 1970-01-01
        • 1970-01-01
        • 2019-08-22
        • 2021-02-11
        • 2021-03-29
        • 1970-01-01
        • 2013-12-25
        相关资源
        最近更新 更多