- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序可以将大量数据读入内存并分批处理。
我想要的是 Entity Framework 忽略 DbUpdateConcurrencyException
删除已删除的实体时。
原因是当一个实体被处理并标记为删除时,它可能已经从数据库中删除了。
不经意地删除已经被删除的行不是问题,也不应该导致错误,我只需要一种方法来告诉 Entity Framework :)
例子
Db.Entry(itemToRemove).State = EntityState.Deleted;
Db.SaveChanges();
itemToRemove
会导致错误已被删除。
Db.Configuration.ValidateOnSaveEnabled = false;
没有像另一个线程建议的那样解决这个问题。
最佳答案
我很久以前就发布了这个问题,但它最近引起了一些关注,所以我想添加我实际使用的解决方案。
//retry up to 5 times
for (var retries = 0; retries < 5; retries++)
{
try
{
Db.SaveChanges();
break;
}
catch (DbUpdateConcurrencyException ex)
{
foreach (var entity in ex.Entries)
{
entity.State = EntityState.Detached;
}
}
}
我考虑的事情 - 我不想使用
ReloadAsync()
或
ObjectContext.Refresh
因为我想忽略在另一个进程中删除的项目,而不需要任何额外的数据库开销。
while(true)
的粉丝如果可以避免的话。
isDone
这样的局部变量或
saveFailed
- 如果我们成功保存,只需打破。
ex.Entries
到一个列表中以枚举它——仅仅因为你可以在一行上写一些东西并不能让它变得更好。
关于entity-framework - 删除实体时如何忽略 DbUpdateConcurrencyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295232/
我在通过 DbContext.Add(...) 方法添加新实体时遇到问题。在 DbContext.SaveChanges() 上,我得到一个 DbUpdateConcurrencyException。
我有一个表单,用户可以在其中编辑他们的用户帐户信息,然后保存新的更改。 当我将修改后的更改保存到数据库时,我遇到了这个问题。 在 context.SaveChanges() 行中,我抛出了一个 DbU
我已经阅读了一些关于可能导致 dbUpdateConcurrencyException 的问题和文章而且它们似乎都与我的代码中发生的事情无关。我对使用 Entity Framework 6.0 的 C
我在 EF6 应用程序中有以下类。 public class Extension { [Key] [Column(Order = 1)] [DatabaseGenerated(
我正在尝试通过 webapi 后面的 aspnetcore.identity UserManager 删除用户。 [HttpPost("Delete", Name = "DeleteRoute
我有一个应用程序可以将大量数据读入内存并分批处理。 我想要的是 Entity Framework 忽略 DbUpdateConcurrencyException删除已删除的实体时。 原因是当一个实体被
我有一个有效实现缓存的表 - 我们将内容放入,我们将内容取出。它有一个 last_accessed 字段,指示它何时被插入或读取,它有一个 max_age 字段,指示保留记录的时间。 我们想清除旧记录
也许我的搜索查询不是很复杂,但我没能找到我正在寻找的正确答案。 我正在 .NET Core (MVVM) 中开发一个 Web 应用程序,其中包含一些用于 CRUD 操作的形式。我处于学习曲线中,观看了
我有以下代码,我正在尝试使用 ef core 更新 ClientAccount,但它们并发检查失败: public class ClientAccount { [Key
我需要帮助测试以下代码 public virtual void Update(T entity) { if (entity == null) {
我在使用 Entity Framework 和 Code First 时遇到问题。我有一个带有 Timestamp 属性的实体,我向数据库添加了一条新记录,调用 SaveChanges,一切正常。当我
这是我的问题:每次我尝试向数据库中添加一行时,都会出现以下异常: DbUpdateConcurrencyException 除了我,没有其他人使用这个开发数据库。请帮忙。我在我的智慧在这里结束。 这是
我正在工作中构建一个新的 .Net Core 2.2 网站并尝试了几种不同的方法,但是在设置 CRUD 模型后使用编辑功能时我收到错误消息。最初我从数据库优先方法开始,然后在尝试编辑项目时收到 DbU
我刚刚启用了我的一个实体的“并发模式”属性。 当我尝试更新时一切正常。 但是当我尝试删除实体时,我总是得到这个错误: DBUpdateConcurrencyException Store update
我在带有 Web 客户端的 Web API 服务器上使用 EF 6.x(代码优先),我需要实现并发处理。问题是我什至无法让 EF 生成异常。 我发现的大多数示例似乎都没有使用“分离的实体”,在这种情况
我正在使用 DbContext 试验 POCO,但不明白如何触发乐观并发异常。当我在应该并发失败的时候调用 DbContext.SaveChanges() 时,它返回零而不是抛出 DbUpdateCo
我有 3 个相关表 个人实体:具有来自地址实体的两个外键(Address 和 Address1)以及来自所有者表的一个外键 地址实体有一个来自所有者表的外键 人员 View 具有来自地址实体的字段,并
当我尝试保存数据库更改时,我不断收到此错误: > {"Store update, insert, or delete statement affected an unexpected > number
MVC/EF 新手……我的 MVC Web 应用程序是首先使用数据库模型中的代码创建的,因为我已经有了数据库(SQLExpress)…… 当我尝试将记录更新到数据库时出现以下错误: Store upd
在 MVC 3 Entity Framework 项目中,我似乎在追逐自己的尾部,没有得到要更新的简单记录,这让我发疯了。我错过了什么? 我可以很好地创建记录,但似乎无法计算出执行更新的逻辑。我尝试了
我是一名优秀的程序员,十分优秀!