【问题标题】:EF Forced Concurrency ChecksEF 强制并发检查
【发布时间】:2012-05-18 20:23:17
【问题描述】:

我有一个关于 EF 4.0 的问题,希望有人能提供帮助。我目前有一个实体,我想以 win 方式最后更新(即忽略并发检查,只用提交的内容覆盖数据库中的内容)。似乎Entity Framework不仅在生成的sql的where子句中包含实体的主键,还包括任何外键字段。这很烦人,因为这意味着我在 wins 语义中最后没有得到正确,并且需要知道 fk 字段在更新之前具有什么值,否则我会遇到并发异常。

我知道这可以通过在实体上包含外键字段和导航属性来缩短。如果可能的话,我想避免这种情况,因为它不是一个非常干净的解决方案。

我只是想知道是否有任何其他方法可以覆盖此行为?它似乎更像是一个错误而不是一个功能。如果我指示 ef 执行并发检查,我对它没有任何问题,但不能完全绕过并发有点障碍,因为在许多有效场景中不需要这样做

【问题讨论】:

  • 您好,您能否通过示例详细说明问题的流程? (包括您按什么顺序更新的内容。)-谢谢。

标签: entity-framework


【解决方案1】:

我不是 100% 确定这会奏效,但我自己很好奇,并认为我可能已经找到了解决方案。

如果您在不可变字段上设置 [ConcurrencyCheck] 属性会怎样(在我的情况下,我使用了 ID(主键)。因为它永远不会被更改,它永远不会触发并发异常,因此会破坏您的输入。

试一试,看看是否能解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 2015-12-12
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2022-12-31
    相关资源
    最近更新 更多