对我来说简单但又神秘:为什么StringPropertyConfiguration(以及所有其他PropertyConfiguration)类对IsConcurrencyToken()
有2次重载?
第一个:
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);
我错过了什么吗?
答案 0 :(得分:4)
我的意见......
IsConcurrencyToken()
默认为true,以提供一种简单,流畅的方式来定义实体。
IsConcurrencyToken(bool?)
允许作者明确设置实体的ConcurrencyMode
。这对高级场景非常有用:
[ConcurrencyCheck]
属性ConcurrencyMode
最后,我认为IsConcurrencyToken(false)
优于IsNotConcurrencyToken()
。