zoukankan      html  css  js  c++  java
  • Entity Framework Core

    并发标记(并发令牌)

      本节主要介绍如何配置并发标记。(后面在介绍保存数据时,再介绍如何处理并发冲突的示例)

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

      数据批注:

    using System.ComponentModel.DataAnnotations;
        public class Person
        {
            public int PersonId { get; set; }
    
            [ConcurrencyCheck]
            public string FirstName { get; set; }
    
            public string LastName { get; set; }
        }

      Fluent API:

                modelBuilder.Entity<Person>()
                    .Property(b => b.FirstName)
                    .IsConcurrencyToken();

    Timestamp/rowversion

      Timestamp/rowversion是一个属性。这个属性指示:每次插入或者更新行时,数据库会自动为其生成新值。此属性也被视为并发标记。

      作用:确保你在更新的数据行在你查询之后发生了更改后,你会得到一个异常。

      具体细节取决于所使用的数据库提供程序;对于SQL Server,通常使用byte[]属性,它将被设置为数据库中的ROWVERSION列。

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

      数据批注:

        public class Person
        {
            public int PersonId { get; set; }
    
            [ConcurrencyCheck]
            public string FirstName { get; set; }
    
            [Timestamp]
            public string LastName { get; set; }
        }

      Fluent API:

        class Team
        {
            public int TeamId { get; set; }
    
            public byte[] RecordTimestamp { get; set; }
        }
    
        class MyDbContext: DbContext
        {
            public DbSet<BlogModel> Blogs { get; set; }
            public DbSet<PostModel> Posts { get; set; }
    
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                modelBuilder.Entity<Team>()
                    .Property(b => b.RecordTimestamp)
                    .IsRowVersion();
        ……
    }
  • 相关阅读:
    grep命令
    Linux下tar.xz结尾的文件的解压方法
    const char*, char const*, char*const的区别
    "undefined reference to" 多种可能出现的问题解决方法
    Linux查找含有某字符串的所有文件
    Netbeans C++ unable to resolve identifier 无法解析标识符
    Linux 下编译C程序的全过程
    linux tar.gz zip 解压缩 压缩命令
    安装anaconda
    Mongodb数据迁移步骤
  • 原文地址:https://www.cnblogs.com/hiwuchong/p/14146599.html
Copyright © 2011-2022 走看看