Как установить версию python на 2.7, если вы установили Anaconda3 (Python 3.6) в MacOS High Sierra 10.13.5
Отредактируйте файл .bash_profile в вашем домашнем каталоге.
vi $ HOME / .bash_profile
hash out the line # export PATH = "/ Users / YOURUSERNAME / anaconda3 / bin: $ PATH"
Закройте оболочку снова, вы должны см. 2.7 при запуске python.
Тогда, если вы хотите 3.6, вы можете просто раскомментировать свою строку anaconda3 в своем профиле bash.
Попытка отсоединить python закончится слезами в Mac OSX.
Вы будете что-то вроде этого
unlink: / usr / bin / python: операция не разрешена
Надеюсь, что кто-то поможет !! :):)
Итак, я отказался от попыток сделать это так, как я чувствовал, что это нужно сделать и удалить плюрализацию все вместе. Я действительно не знаю наверняка, но я предполагаю, что проблема связана с поддержкой соединителя 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+, и пока пользователь вашей строки подключения может создавать новые базы данных, он работает лучше, если изначально не существует.
Я все это сделал, он работал. Поэтому теперь я могу хотя бы двигаться вперед. Надеюсь, мы сможем выяснить причину множественного / сингулярного несоответствия в будущем.
Спасибо всем за их время и усилия.
Откройте класс DbContext
, связанный с таблицами, которые вы хотите сохранить имя уникальной таблицы.
Если вы используете EF 6, добавьте ссылку на:
using System.Data.Entity.ModelConfiguration.Conventions;
Если это более старая версия, добавьте ссылку на:
using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db;
Наконец, создайте метод, который переопределяет OnModelCreating
и удаляет соглашение для множественного имени таблиц:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Удалите флажок «Плюрализировать или сгенерировать сгенерированные объекты», когда вы создаете объект объекта.
[/g0]
Если вы используете Code First с EF 6.1 +, переопределите обработчик события OnModelCreating и выполните следующие вызовы:
dmbCloud.Conventions.Remove<PluralizingEntitySetNameConvention>();
dmbCloud.Conventions.Remove<PluralizingTableNameConvention>();
В вашем классе контекста myDB переопределите следующий метод
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
, чтобы он не дублировал имена сгенерированных таблиц.
Can't create table 'yourdb.#sql-440_4fa8' (errno: 150)
, это означает, что вы забыли удалитьTableAttribute
на одной из ваших моделей (ошибка 150 связана с внешним ключом). – Marthijn 20 December 2011 в 11:43