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

Warisan Kelas dengan .NET EF4.1 + MySQL

Saya menghadapi masalah yang sama hari ini, perbedaannya adalah saya tidak mengandalkan Code First untuk membuat tabel untuk saya, saya membuatnya secara manual saat saya mulai.

Saya telah mengikuti deskripsi yang diberikan di sini dan saya berakhir pada kesalahan yang sama seperti Anda, saya telah secara manual membuat bidang "Discriminator" di meja saya dan mengubah jenisnya menjadi MEDIUMTEXT tetapi penyedia bersikeras bahwa saya entah bagaimana menyediakan properti MaxLength, meskipun MEDIUMTEXT tidak memiliki MaxLength seperti VARCHAR , saya berasumsi ini pasti bug pada penyedia.

Nah, untuk mengatasinya saya telah menggunakan API yang lancar untuk secara manual memberi tahu nama kolom diskriminator (yang saya simpan sebagai "Diskriminator") dan nilai-nilai yang diharapkan EF dari kolom diskriminator, dalam kasus Anda ini adalah:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Vehicle>()
            .Map<Car>(m => m.Requires("Discriminator").HasValue("Car"))
            .Map<Bike>(m => m.Requires("Discriminator").HasValue("Bike"));
}

Saya telah mengubah jenis kolom diskriminator saya menjadi VARCHAR(50) tanpa masalah yang jelas, ini berfungsi dengan baik untuk saya sekarang. Alternatif bagi saya adalah bermigrasi ke ORM lain yang terlalu banyak pekerjaan, saya akan menunggu versi berikutnya dari penyedia MySql dan menguji apakah mereka telah memperbaikinya, sementara itu saya akan tetap menggunakan solusi ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menyimpan kata sandi dengan aman untuk api tanpa mengenkripsinya

  2. Menerapkan Komentar dan Suka di database

  3. Memperbaiki kesalahan PHP PEAR

  4. Tabel dasar atau tampilan tidak ditemukan:1146 Tabel Laravel 5

  5. Apakah MySQL mengindeks nilai NULL?