C# 实体框架IsRowVersion(),不进行并发检查

C# 实体框架IsRowVersion(),不进行并发检查,c#,sql-server,entity-framework,concurrency,C#,Sql Server,Entity Framework,Concurrency,我们有一个表,它有一个名为Version的列,该列映射为SQLrowversion。之所以这样做,是因为我们有一个映射到数据的外部系统,该系统依赖于每次更新表时更改的列。最初我们希望由SQL来处理,但现在我们发现存在乐观并发异常。虽然这些异常是为了保护数据被覆盖,但对于我们的情况,我们并不关心这一点。我们只希望时间戳继续递增,而不需要实体框架检查并发性问题 有没有办法做到这一点 映射: Property(t => t.Version).IsRowVersion(); 默认情况下,EF表示

我们有一个表,它有一个名为
Version
的列,该列映射为SQL
rowversion
。之所以这样做,是因为我们有一个映射到数据的外部系统,该系统依赖于每次更新表时更改的列。最初我们希望由SQL来处理,但现在我们发现存在乐观并发异常。虽然这些异常是为了保护数据被覆盖,但对于我们的情况,我们并不关心这一点。我们只希望
时间戳
继续递增,而不需要实体框架检查并发性问题

有没有办法做到这一点

映射:

Property(t => t.Version).IsRowVersion();

默认情况下,EF表示行版本类型为乐观并发令牌(包括在乐观并发检查中)

您可以使用
IsConcurrencyToken
fluent API覆盖该行为:

Property(t => t.Version).IsRowVersion().IsConcurrencyToken(false);

是的,只需将其从映射中删除即可。Sql Server仍将在每次更新时递增该属性。我尝试将其从映射中删除,但出现错误:
无法更新时间戳列
是否主动将该属性标记为已忽略?再想一想,为什么不把它从你的类模型中删除呢?我们需要能够在我们的应用程序中使用这个列,因为我们需要为另一个使用我们的api的应用程序提供值,所以从模型中删除它是不可能的。下面的答案已经解决了我们的问题。我现在要测试一下,如果这个有效,我可以吻你!非常感谢你!几个月来,我们一直在努力寻找这些并发问题的根源