Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Konkurensi yang optimis dengan Entity Framework dan MySQL

Peringatan besar:TIDAK DIUJI - hanya berpikir keras.

EF mendukung penggantian SaveChanges , jadi mungkin salah satu opsinya adalah mendefinisikan antarmuka seperti:

interface IVersionedRow {
    int RowVersion {get;set;}
}

dan tambahkan int RowVersion properti/bidang ke kelas model Anda dan tabel database, dan gunakan partial class untuk mengimplementasikan antarmuka ini (menggunakan implementasi antarmuka implisit):

partial class Customer : IVersionedRow {}
partial class Order : IVersionedRow {}
...

Kemudian timpa SaveChanges , sesuatu seperti:

public override int SaveChanges(SaveOptions options)
{    
    foreach (ObjectStateEntry entry in
        ObjectStateManager.GetObjectStateEntries(EntityState.Modified))
    {
        var v = entry.Entity as IVersionedRow;
        if(v != null) v.RowVersion++;
    }
    return base.SaveChanges(options);
}

yang kemudian akan berfungsi (secara teori - belum teruji) sebagai penghitung versi baris yang diimplementasikan secara manual. Biarkan validasi perubahan diaktifkan untuk RowVersion , dan itu akan berfungsi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah skema MySQL ke Github Wiki?

  2. Membaca tanda-tanda seperti dari database MySql

  3. JAM () Contoh – MySQL

  4. Apakah ada cara berbeda untuk mengimplementasikan program ini tanpa menggunakan loop while bersarang?

  5. Cara memperbarui tabel pivot menggunakan Eloquent di laravel 5