Vì vậy, tôi đã từ bỏ việc cố gắng làm theo cách mà tôi cảm thấy nên làm và loại bỏ đa nguyên hóa cùng nhau. Tôi thực sự không biết chắc chắn, nhưng tôi cho rằng vấn đề liên quan đến việc hỗ trợ EF của trình kết nối mysql .net. Đây là những gì tôi đã làm.
Đầu tiên, đã xảy ra lỗi trong phương thức ApplicationStart của tôi:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
Thứ hai, tôi đã ngừng gọi triển khai cơ sở OnModelCreating không được liệt kê trong mã gốc vì tôi chỉ triển khai nó theo gợi ý của jgauffin:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Thứ ba, tôi đọc trong một số bài đăng rằng Trình kết nối MySQL .net không cho phép EF thực sự TẠO cơ sở dữ liệu, vì vậy ban đầu tôi đã tạo DB trống. Điều này dường như không còn xảy ra với trình kết nối 6.4.4+ và miễn là người dùng chuỗi kết nối của bạn có khả năng tạo cơ sở dữ liệu mới, thì cơ sở dữ liệu sẽ hoạt động tốt hơn nếu ban đầu chưa có.
Một lần, tôi đã làm tất cả những điều trên, nó dường như hoạt động. Vì vậy, bây giờ ít nhất tôi có thể tiến về phía trước. Hy vọng rằng chúng ta có thể tìm ra nguyên nhân của sự khác biệt số nhiều / số ít trong tương lai.
Cảm ơn mọi người đã dành thời gian và nỗ lực.