Rangka Kerja Entiti Mencipta Jadual Plural Sementara View Menjangkakan Jadual Tunggal
Dalam kod yang disediakan, Rangka Kerja Entiti mencipta berbilang jadual walaupun paparan memerlukan satu meja. Percanggahan ini berlaku kerana perbezaan dalam nama jadual yang dicipta oleh Rangka Kerja Entiti dan jadual yang dirujuk oleh paparan.
Jadual yang dibuat oleh Rangka Kerja Entiti mengikut konvensyen penggandaan nama entiti. Oleh itu, dalam kes ini, jadual bernama "Undi" dijana. Walau bagaimanapun, paparan menjangkakan jadual bernama "Undi." Sebab utama untuk ini ialah sokongan penyambung MySQL .net terhadap EF. Mengalih keluar pemajmukan dan membuat pelarasan lain harus menyelesaikan isu.
Pertama, kaedah "ApplicationStart" mengandungi ralat kecil:
// Database.SetInitializer(new DropCreateDatabaseAlways<myDB>()); Database.SetInitializer(new myDBInitializer());
Selain itu, melumpuhkan pelaksanaan asas "OnModelCreating" ialah diperlukan:
protected override void OnModelCreating(DbModelBuilder modelBuilder) { // modelBuilder.Entity<Vote>().ToTable("Votes") modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); }
Adalah juga telah dicadangkan bahawa MySQL .net Connector menghalang EF daripada menghasilkan pangkalan data, yang memerlukan penciptaan DB kosong terlebih dahulu. Had ini tidak digunakan pada versi penyambung 6.4.4 dalam senario semasa. Mencipta pangkalan data adalah lebih baik jika pengguna mempunyai kebenaran yang diperlukan.
Pelarasan ini harus menyelesaikan percanggahan antara nama jadual jamak yang dicipta oleh Rangka Kerja Entiti dan nama jadual tunggal yang dijangkakan oleh paparan.
Atas ialah kandungan terperinci Mengapa Rangka Kerja Entiti Mencipta Jadual Plural Sementara Pandangan Saya Menjangkakan Jadual Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!