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

首先:
public StringPropertyConfiguration IsConcurrencyToken()


第二个:
public StringPropertyConfiguration IsConcurrencyToken(bool?)


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

通过使用第一个,您将编写如下内容:

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/

    10-08 21:51