【问题标题】: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.
}
【问题讨论】:
标签:
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();