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

Bagaimana cara menggunakan tipe int/long yang tidak ditandatangani dengan Entity Framework?

Perbarui Feb 2021

Rupanya EF Core sekarang mendukung ulong -- lihat jawaban @JimbobTheSailor di bawah.

Versi Kerangka Entitas Lama:

Ternyata Entity Framework tidak mendukung unsigned tipe data. Untuk uint kolom, seseorang bisa saja menyimpan nilai dalam tipe data yang ditandatangani dengan rentang yang lebih besar (yaitu, long ). Bagaimana dengan ulong kolom? Solusi umum tidak dapat bekerja untuk saya karena tidak ada tipe data bertanda yang didukung EF yang dapat menampung ulong tanpa meluap.

Setelah sedikit berpikir, saya menemukan solusi sederhana untuk masalah ini:simpan saja data di long yang didukung ketik dan masukkan ke ulong saat diakses. Anda mungkin berpikir:"Tapi tunggu, nilai maksimal ulong> nilai maksimal long!" Anda masih dapat menyimpan byte ulong dalam waktu lama dan kemudian mengembalikannya ke ulong saat Anda membutuhkannya, karena keduanya memiliki 8 byte. Ini akan memungkinkan Anda untuk menyimpan variabel ulong ke database melalui EF.

// Avoid modifying the following directly.
// Used as a database column only.
public long __MyVariable { get; set; }

// Access/modify this variable instead.
// Tell EF not to map this field to a Db table
[NotMapped]
public ulong MyVariable
{
    get
    {
        unchecked
        {
            return (ulong)__MyVariable;
        }
    }

    set
    {
        unchecked
        {
            __MyVariable = (long)value;
        }
    }
}

Castingnya unchecked untuk mencegah pengecualian yang berlebihan.

Semoga ini bisa membantu seseorang.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara utf8_general_ci dan utf8_unicode_ci?

  2. Cara Mencadangkan dan Mengembalikan (Ekspor dan Impor) Tutorial Database MySQL

  3. Mengurutkan berdasarkan tanggal &waktu dalam urutan menurun?

  4. Masukkan kunci utama kenaikan otomatis ke tabel yang ada

  5. MySQL Tampilkan Pengguna