Cra*_*rge 4 concurrency entity entity-framework
我有一个每10秒运行一次的Windows服务...每次运行时,它会获取一些测试数据,修改它并使用EntityFramework将其持久保存到数据库中.但是,在每次运行时,当我尝试持久化更改时,我会得到以下乐观并发异常: -
存储更新,插入或删除语句会影响意外的行数(0).自实体加载后,实体可能已被修改或删除.刷新ObjectStateManager条目
我知道一个事实是没有其他任何东西写入该数据库但我的服务每10秒更新一次记录.什么可能导致并发异常?
我认为对象图中的某个相关实体在第二次保存操作之前被修改了.我所做的只是实例化一个新的对象上下文,并在我使用相同的上下文检索的一些记录上调用保存操作.以下代码工作---
var ctx = new blahEntities();
var profile = ctx.ProfileSet.Where(pr=>pr.FirstName.Contains("a")).FirstOrDefault();
profile.Address = "modified";
ctx.SaveChanges();
ctx.Refresh(RefreshMode.StoreWins,profile);
Run Code Online (Sandbox Code Playgroud)
"意外行数(0)"表示您很可能没有在实体模型中正确映射或定义ID字段,或者您正在修改分离的实体并尝试保存它并且它没有关键信息.
运行SQL Server探查器或Entity Framework Profiler,并查看后台发生的情况.
| 归档时间: |
|
| 查看次数: |
4638 次 |
| 最近记录: |