Rumah  >  Artikel  >  pangkalan data  >  Mengapa Rangka Kerja Entiti Mencipta Jadual Tunggal dalam MySQL Walaupun Model Saya adalah Plural?

Mengapa Rangka Kerja Entiti Mencipta Jadual Tunggal dalam MySQL Walaupun Model Saya adalah Plural?

DDD
DDDasal
2024-10-31 08:03:30295semak imbas

Why Does Entity Framework Create Singular Tables in MySQL Even When My Model is Plural?

Konflik Nama Jadual Plural dalam Rangka Kerja Entiti

Isu ini timbul apabila menggunakan Rangka Kerja Entiti dengan MySQL dan cuba mencipta jadual dengan nama majmuk daripada model tunggal.

MASALAH:

Dalam kod yang disediakan, jadual bernama "undi" dijangka oleh paparan, tetapi Rangka Kerja Entiti mencipta jadual bernama " undi" dalam MySQL. Percanggahan ini mengakibatkan pengecualian, "Jadual 'mydb.vote' tidak wujud."

PENYELESAIAN:

Untuk menyelesaikan isu ini, langkah berikut boleh diambil:

  1. Alih keluar panggilan pembina asas dalam OnModelCreating:
    Pada asalnya, panggilan pembina asas digunakan dalam OnModelCreating untuk melaksanakan pluralisasi. Walau bagaimanapun, adalah disyorkan untuk mengalih keluar panggilan ini untuk mengelakkan tingkah laku pemajmukan.
  2. Alih keluar PluralizingTableNameConvention:
    Kod pada mulanya termasuk baris untuk mengalih keluar PluralizingTableNameConvention. Ini masih diperlukan untuk mengelakkan pemajmukan automatik nama jadual.
  3. Lepaskan pangkalan data sedia ada:
    Adalah disyorkan untuk menggugurkan pangkalan data sedia ada dan kemudian membenarkan Rangka Kerja Entiti mencipta yang baharu satu. Ini memastikan bahawa nama jadual yang betul digunakan.
  4. Pastikan kebenaran penciptaan pangkalan data:
    Sahkan bahawa pengguna MySQL yang dinyatakan dalam rentetan sambungan mempunyai kebenaran yang mencukupi untuk mencipta pangkalan data baharu.
  5. Alih keluar pemajmukan daripada ApplicationStart:
    Kod asalnya menggunakan DropCreateDatabaseAlways, yang melumpuhkan pemajmukan. Walau bagaimanapun, ini telah salah dilaksanakan sebagai Pangkalan Data.SetInitializer(DropCreateDatabaseAlways() baharu. Sebaliknya, ia mestilah Pangkalan Data.SetInitializer(new myDBInitializer()).

Selepas melaksanakan perubahan ini, Rangka Kerja Entiti hendaklah mencipta jadual "undi" dalam MySQL dengan betul, menyelesaikan konflik nama jadual dan membenarkan pandangan untuk berfungsi dengan betul.

Atas ialah kandungan terperinci Mengapa Rangka Kerja Entiti Mencipta Jadual Tunggal dalam MySQL Walaupun Model Saya adalah Plural?. 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