c# - EF 代码优先 - IsConcurrencyToken()

标签 c# entity-framework ef-code-first

对我来说简单但又神秘:为什么 StringPropertyConfiguration (以及所有其他 PropertyConfiguration)类有 2 个重载 IsConcurrencyToken()?

第一个:

public StringPropertyConfiguration IsConcurrencyToken()

Configures the property to be used as an optimistic concurrency token.

第二个:

public StringPropertyConfiguration IsConcurrencyToken(bool?)

Configures whether or not the property is to be used as an optimistic concurrency token.

你为什么要用一个而不是另一个?在我看来,这两个重载之间没有任何区别(至少在使用它们时没有区别)...

通过使用第一个你会写这样的东西:

modelBuilder.Entity<Author>()
    .Property(x => x.Name)
    .IsConcurrencyToken();

然后使用第二个你会写:

modelBuilder.Entity<Author>()
    .Property(x => x.Name)
    .IsConcurrencyToken(true/false/null);

我错过了什么吗?

最佳答案

我的看法...

IsConcurrencyToken() 默认为 true 以提供一种简单、流畅的方式来定义实体。

IsConcurrencyToken(bool?) 允许作者明确设置实体的 ConcurrencyMode。这对于高级场景很有用:

  • 覆盖 POCO 上的 [ConcurrencyCheck] 属性
  • 允许约定(在 EF 4.1 RTW 中删除)根据一些自定义约定启用/禁用 ConcurrencyMode

最后,我认为 IsConcurrencyToken(false)IsNotConcurrencyToken() 好。

关于c# - EF 代码优先 - IsConcurrencyToken(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980128/

相关文章:

c# - 如何在用于 SQL 插入的方法中进行参数化查询?

asp.net-mvc - EF Core 3.1 是否支持 DB First 方法?

C# 搜索目录中包含字符串的所有文件,然后返回该字符串

c# - 确定类 x 是否派生自类 y 的最简单方法? (C#)

c# - (21,6): error 0019: Each property name in a type must be unique.

entity-framework-4 - 使用 DbContext 刷新实体实例

entity-framework - 先映射私有(private)属性 Entity Framework 代码

.net - 使用 Entity Framework 代码优先时,SQL Server顺序向导为键

c# - 实现泛型的特定案例,而不是从中派生

c# - 将 LINQ .Distinct() 与 DateTime 一起使用 - 仅选择日期的第一个实例