![]() |
1
1
一个Contoso实例与一个事务一起操作,但是如果你有多个任务在运行,每个任务都访问对同一表操作的Contoso实例,你可能会遇到死锁。
我看到的一个问题是,如果你正在根据替代来源检查合作伙伴并进行更改,你不应该调用AddOrUpdate。合作伙伴已经包含被跟踪的实例,因此只需调用
在与其他数据操作并行运行此类批量操作时,您需要非常小心。一次加载的实体越多,EF执行读取和保存的时间就越长,死锁的窗口就越大。一次点击处理500条记录是相当少的。如果此任务不断运行,检查和更新行,您可能需要减少这一点,如果没有行要处理,也可以让它退出,而无需进一步查询。 如果这是SQL Server,您可能还需要考虑检查数据库是否为读取提交的快照设置。这可以通过利用行版本控制来处理并发性来帮助防止死锁情况。 |
![]() |
2
-1
正如你提到的,你有时会使用
|
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 3 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
![]() |
Murat Güzel · EF存储库模式错误{'Id'}已被跟踪 3 年前 |
![]() |
dotnetdevcsharp · 减少基于数据类型获取设置的方法数量 3 年前 |
![]() |
saravanan049 · 在实体框架中回滚Azure SQL数据库 3 年前 |