并发标记

备注

此页介绍如何配置并发标记。 有关并发控制的工作原理的详细说明,请参阅 处理并发冲突 EF Core 和如何处理应用程序中的并发冲突的示例。

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

配置

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; }
}