EF Core Fluent API:使用时间戳的两种并发令牌



我从两个来源看到了两种方法:

首先:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>()
        .Property(p => p.Timestamp)
        .IsRowVersion();
}

第二:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
     modelBuilder.Entity<Author>()
        .Property(a => a.RowVersion)
        .IsConcurrencyToken()
        .ValueGeneratedOnAddOrUpdate();
}

两种情况我都使用byte[]作为属性。

有什么区别,什么是可取的?

这是旧的,但是如果其他任何人都发生在它上,因为在EF Core 1.1'Isrowversion'中的简介只是围绕'isConcurrencyToken'和dureat veralegeneratedOgenDoreDonadDorupdate的包装器。Isrowversion将自动为列的Rowversion选择正确的数据类型,我认为IsConcurrencyToken并非如此。

最新更新