并发标记

注意

本页记录如何配置并发令牌。 请参阅处理并发冲突,详细了解 EF Core 上的并发控制的工作原理以及如何在应用程序中处理并发冲突的示例。

使用配置为并发标记的属性实现乐观并发控制。

Configuration

public class Person
{
    public int PersonId { get; set; }

    [ConcurrencyCheck]
    public string LastName { get; set; }

    public string FirstName { get; set; }
}

Timestamp/rowversion

Timestamp/rowversion 是每次插入行或更新行时数据库自动生成新值的属性。 该属性也被视为并发令牌,确保在查询后要更新的行发生更改时得到异常。 具体的详细信息取决于所使用的数据库提供程序;对于 SQL Server,通常使用 byte[] 属性,该属性将设置为数据库中的 ROWVERSION 列。

可以将属性配置为 timestamp/rowversion,如下所示:

public class Blog
{
    public int BlogId { get; set; }

    public string Url { get; set; }

    [Timestamp]
    public byte[] Timestamp { get; set; }
}