Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

DbUpdateConcurrencyException sử dụng Entity Framework 6 với MySql

Bạn nên cố gắng sử dụng tính năng Dấu thời gian / Rowversion của DB. Trong EF, bạn khai báo một ByteArray và chỉ định nó làm trường kiểm tra đồng thời.DB đặt giá trị khi tạo. Tất cả các bản cập nhật tiếp theo có thể kiểm tra giá trị đã không thay đổi DB cập nhật rowversion nếu thích hợp. Cách tiếp cận này hoạt động trên máy chủ SQL, nó sẽ hoạt động giống như trên MYSql.

    public  abstract class BaseObject  {
    [Key]
    [Required]
    public virtual int Id { set; get; }

    [ConcurrencyCheck()]
    public virtual byte[] RowVersion { get; set; }

    }

hoặc thông thạo nếu bạn thích // Primary Keythis.HasKey (t => t.Id);

        // Properties
        //Id is an int allocated by DB , with string keys, no db generation now
        this.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); // default to db generated

        this.Property(t => t.RowVersion)
            .IsRequired()
            .IsFixedLength()
            .HasMaxLength(8)
            .IsRowVersion(); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Docu về mô hình đồng thời lạc quan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tạo bảng với mối quan hệ N:M trong MySQL?

  2. Phao hay số thập phân cho giá?

  3. Tại sao các hàng trả về bằng giải thích không bằng count ()?

  4. Thêm ràng buộc duy nhất dựa trên giá trị trường

  5. Tương đương với MySQL group_concat