C# EF代码优先-IsConcurrencyToken()
简单但对我来说却很神秘:为什么(以及所有其他PropertyConfiguration)类对C# EF代码优先-IsConcurrencyToken(),c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,简单但对我来说却很神秘:为什么(以及所有其他PropertyConfiguration)类对IsConcurrencyToken()有2个重载 第一: public-StringPropertyConfiguration是ConcurrencyToken() 将属性配置为用作 乐观并发令牌 第二点: publicstringpropertyconfigurationisconcurrencytoken(bool?) 配置属性是否为空 是用来表示乐观的 并发令牌 你为什么要用一个而不是另一个?在我
IsConcurrencyToken()
有2个重载
第一:
public-StringPropertyConfiguration是ConcurrencyToken()
将属性配置为用作
乐观并发令牌
第二点:
publicstringpropertyconfigurationisconcurrencytoken(bool?)
配置属性是否为空
是用来表示乐观的
并发令牌
你为什么要用一个而不是另一个?在我看来,这两个重载之间没有任何区别(至少在使用它们时没有区别)
通过使用第一个选项,您可以编写如下内容:
modelBuilder.Entity<Author>()
.Property(x => x.Name)
.IsConcurrencyToken();
modelBuilder.Entity()
.Property(x=>x.Name)
.IsConcurrencyToken();
用第二个字母你会写:
modelBuilder.Entity<Author>()
.Property(x => x.Name)
.IsConcurrencyToken(true/false/null);
modelBuilder.Entity()
.Property(x=>x.Name)
.IsConcurrencyToken(真/假/空);
我错过什么了吗?我的看法
IsConcurrencyToken()
默认为true,以提供一种简单、流畅的方式来定义实体
IsConcurrencyToken(bool?
允许作者确定设置实体的ConcurrencyMode
。这对于高级场景非常有用:
- 覆盖POCO上的
属性[ConcurrencyCheck]
- 允许约定(在EF 4.1 RTW中删除)基于某些自定义约定启用/禁用
并发模式
IsConcurrencyToken(false)
优于IsNotConcurrencyToken()
+1,因为“IsConcurrencyToken(false)优于IsNotConcurrencyToken()。这是一样的,但是读第二个太快可能会让人认为该属性是一个ConcurrencyToken(在快速阅读时可能只是“跳过”了“不是”)。