Итак, я отказался от попыток сделать это так, как я чувствовал, что это нужно сделать и удалить плюрализацию все вместе. Я действительно не знаю наверняка, но я предполагаю, что проблема связана с поддержкой соединителя mysql .net EF. Вот что я сделал.
Во-первых, в моем методе ApplicationStart произошла ошибка:
//WRONG
//Database.SetInitializer(new DropCreateDatabaseAlways<myDB>());
Database.SetInitializer(new myDBInitializer());
Во-вторых, я перестал использовать базовую реализацию OnModelCreating, которая не указана в оригинале код, так как я только реализовал его в соответствии с предложением jgauffin:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//DONT DO THIS ANYMORE
//base.OnModelCreating(modelBuilder);
//modelBuilder.Entity<Vote>().ToTable("Votes")
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
В-третьих, я прочитал в некоторых сообщениях, что MySQL .net Connector не позволяет EF фактически создавать CREATE базу данных, поэтому я изначально создал пустой БД. Это, похоже, больше не относится к разъему 6.4.4+, и пока пользователь вашей строки подключения может создавать новые базы данных, он работает лучше, если изначально не существует.
Я все это сделал, он работал. Поэтому теперь я могу хотя бы двигаться вперед. Надеюсь, мы сможем выяснить причину множественного / сингулярного несоответствия в будущем.
Спасибо всем за их время и усилия.
Да, это все еще возможно через взлом URL. Из моего локального экземпляра 5.16.0:
http://bitbucket.local/projects/PROJ/repos/myrepo/browse?at=b15afd066a1
Где http://bitbucket.local
- это URL моего экземпляра, PROJ
- это ключ моего проекта, myrepo
- мой репо-репозиторий, а b15afd066a1
- мой хэш коммита. Ваш хеш коммита не обязательно должен быть полным , Bitbucket будет принимать что угодно> = 4 символа. Очевидно, что чем больше хеша вы используете, тем меньше шансов попасть в коллизию.