Rumah >pangkalan data >tutorial mysql >Mengapa Rangka Kerja Entiti Mencipta Nama Jadual Plural Sementara Pandangan Saya Menjangkakan Nama Tunggal dalam MySQL?

Mengapa Rangka Kerja Entiti Mencipta Nama Jadual Plural Sementara Pandangan Saya Menjangkakan Nama Tunggal dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 20:38:02831semak imbas

Why Does Entity Framework Create Plural Table Names While My View Expects Singular Names in MySQL?

Rangka Kerja Entiti Mencipta Nama Jadual Plural, tetapi View Menjangkakan Nama Jadual Tunggal

Menggunakan MySQL .NET Connector 6.4.4.0 dan Entiti Framework 4.1, pembangun mungkin menghadapi masalah di mana Rangka Kerja Entiti mencipta jadual dengan nama jamak, tetapi pandangan untuk objek menjangkakan nama jadual tunggal. Ini boleh mengakibatkan ralat semasa cuba memaparkan paparan.

Butiran Ralat

Ralat biasanya berlaku dengan pengecualian berikut:

Table 'mydb.vote' doesn't exist

Pengecualian ini dilemparkan apabila lihat percubaan untuk mengakses jadual bernama "undi" apabila Rangka Kerja Entiti telah mencipta jadual dengan nama "undi" (dengan mengandaikan kelas entiti dinamakan "Undi").

Punca

Puncanya ralat ini berkaitan dengan konvensyen Rangka Kerja Entiti untuk menjamakan nama jadual. Secara lalai, Rangka Kerja Entiti akan menjamakan nama kelas entiti apabila menjana nama jadual. Walau bagaimanapun, faktor luaran tertentu, seperti sokongan MySQL .NET Connector untuk Rangka Kerja Entiti, boleh menjejaskan tingkah laku ini.

Penyelesaian

Untuk menyelesaikan isu ini, beberapa langkah boleh diambil:

  1. Pastikan 'DropDatabaseIfExists' atau 'DropCreateDatabaseAlways' digunakan: Kaedah ApplicationStart harus menetapkan pemula pangkalan data dengan betul.
  2. Alih keluar percanggahan tunggal/plural daripada pangkalan data: Ini boleh dicapai dengan mengalih keluar PluralizingTableNameConvention atau dengan memanggil ToTable("Votes") dalam OnModelCreating.
  3. Pastikan pangkalan data wujud sebelum menjalankan aplikasi: MySQL .NET Penyambung mungkin tidak mencipta pangkalan data secara automatik, jadi mencipta pangkalan data secara manual mungkin diperlukan.

Dengan mengikuti langkah ini, percanggahan antara nama jadual jamak yang dicipta oleh Rangka Kerja Entiti dan nama jadual tunggal yang dijangkakan oleh pandangan boleh diselesaikan.

Atas ialah kandungan terperinci Mengapa Rangka Kerja Entiti Mencipta Nama Jadual Plural Sementara Pandangan Saya Menjangkakan Nama Tunggal dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn