EF 代码优先 - IsConcurrencyToken()

发布于 2024-11-07 11:47:46 字数 981 浏览 0 评论 0原文

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

我错过了什么吗?

Simple, but yet mysterious for me: Why do StringPropertyConfiguration (and all the other PropertyConfiguration) class(es) have 2 overloads for IsConcurrencyToken()?

The first:

public StringPropertyConfiguration IsConcurrencyToken()

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

And the second:

public StringPropertyConfiguration IsConcurrencyToken(bool?)

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

Why would you use one over the other? As I see it, there's no difference at all between those two overloads (atleast not when working with them)...

By using the first you would write something like:

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

And by using the second you would write:

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

Have I missed something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

平定天下 2024-11-14 11:47:46

我的观点...

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

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

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

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

My opinion...

The IsConcurrencyToken() defaults to true to provide a simple, fluent manner to define the entity.

The IsConcurrencyToken(bool?) allows the author to definitively set the ConcurrencyMode of the entity. This is useful for advanced scenarios:

  • Overriding the [ConcurrencyCheck] attribute on the POCO
  • Allowing a convention (removed in EF 4.1 RTW) to enable/disable the ConcurrencyMode based on some custom convention

Finally, I think IsConcurrencyToken(false) is better than IsNotConcurrencyToken().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文