EF Code First - IsConcurrencyToken()

本文关键字:IsConcurrencyToken Code First EF | 更新日期: 2023-09-27 17:56:09

简单,但对我来说却很神秘:为什么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);

我错过了什么吗?

EF Code First - IsConcurrencyToken()

我的意见...

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

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

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

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

相关文章:
  • 没有找到相关文章