实体框架使用公共数据修改多个记录

时间:2017-12-04 06:14:01

标签: c# asp.net asp.net-mvc entity-framework

我有一个" Apps"由多个应用数据组成的表 现在我想删除(软删除意味着使isDelete = true)

我通过以下代码删除记录。

var deletingISVCSPRecord = await db.ISVCSP.Where(s => s.BeneficiaryId == beneficiaryId).ToListAsync();
foreach (var item in deletingISVCSPRecord)
{
    item.IsDeleted = true;
    await db.SaveChangesAsync();
}

有什么好方法可以做到这一点。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

更好的方式意味着如果你更新大约10k记录这是更好的方法..它会将每个文件更新减少为一次更新。

foreach (var item in db.ISVCSP.Where(s => s.BeneficiaryId == beneficiaryId))
{
    item.IsDeleted = true;    
}
await db.SaveChangesAsync();

答案 1 :(得分:0)

我一直在做的是使用事务范围,并且只在所有更新后保存一次。到目前为止,这对我的项目来说已经足够好了,你可能想要以更高效的方式进行比较。

[
 {
  "id":"2",
  "dateCreated":"2017-10-02 12:00:00",
  "status":"Active"
  "body":"This is a test 2"
 }
]

答案 2 :(得分:0)

这将是更新记录而不是完全删除

假设您已经创建了模型名称ISVCSPModel

ISVCSPModel ISVCSPmodel= db.ISVCSP.Find(beneficiaryId)
db.Entry(ISVCSPmodel).State = EntityState.Modified;
ISVCSPmodel.IsDeleted = true;
db.SaveChangesAsync();