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

Menangani Tanggal Nol MySQL dengan EF Core

Orang mungkin berpendapat bahwa ini lebih cocok sebagai komentar, tetapi pada dasarnya, ini terlalu lama untuk itu.

Dan:

Anda harus membantu saya sedikit karena saya tidak memiliki sistem kerja, jadi saya melakukan ini dari atas kepala saya. (dan saya sedikit terburu-buru)

Pertama, mulai dengan properti yang tidak dipetakan:

[NotMapped]
public DateTime ExpiryDate { get; set; }

Properti ini tidak dipetakan. Ini mungkin menyebabkan beberapa kesalahan mengenai database yang tidak cocok dengan model, tetapi kami dapat mengatasinya. Properti ini tidak akan terisi secara otomatis saat mengkueri data. Jadi, kita perlu cara untuk menghadapinya sendiri.

Misalnya, (yang merupakan contoh buruk karena kita membutuhkan konteks dalam entitas di suatu tempat ):

[NotMapped]
public DateTime? ExpiryDate 
{
    get
    {
         //of course you'll need some caching here
         var s = context.Database.SqlQuery<string>("query to select datetime as string");
         //additional logic to determine validity:
         if (s == "0000-00-00")
             return null;
         //else:
         //do the conversion
    }
 }

Pertanyaan dasar di sini; seberapa jauh Anda ingin mendukung ini dalam kerangka EF? Apakah Anda hanya perlu membacanya, atau menulis juga, menggunakan change tracker dari EF dll?

Ada kemungkinan lain, misalnya, untuk melakukan CAST ke nvarchar dalam SQL itu sendiri untuk mendapatkan data dan memprosesnya lebih lanjut.

Mungkin ModelBuilder memperlihatkan beberapa opsi tambahan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengoptimalkan MySQL ORDER BY pada perhitungan yang dibagikan dengan WHERE

  2. Membuat kueri dalam garis bujur dan lintang di MySQL

  3. persimpangan mysql

  4. #1115 - Kumpulan karakter tidak dikenal:'utf8mb4'

  5. Tidak dapat bermigrasi menggunakan ModelState dan ProjectState menggunakan API migrasi di Django 3.0.3