Можно ли изменить местоположение EF Migrations & ldquo; Migrations & rdquo; папка?

Я использую этот трюк в течение нескольких лет, и он отлично работает без каких-либо проблем при проверке / снятии флажка при использовании с PHP и базой данных.

Код HTML: (для добавления страницы)

<input name="status" type="checkbox" value="1" checked>

Подсказка: удалите «флажок», если вы хотите показать его как непроверенный по умолчанию

Код HTML: (для Edit Page)

<input name="status" type="checkbox" value="1" 
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>

PHP Код: (используйте для добавления / редактирования страниц)

$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}

Подсказка: всегда будет пустое значение, если пользователь не проверит его. Итак, у нас уже есть PHP-код, чтобы поймать его, остальное значение равно 0. Затем просто используйте переменную $ status для базы данных.

41
задан Betty 19 December 2011 в 08:00
поделиться

1 ответ

Указание папки миграции также возможно во время вызова команды enable-migrations (которая создает класс Configuration) с использованием параметра -MigrationsDirectory:

enable-migrations -EnableAutomaticMigration:$false -MigrationsDirectory Migrations\CustomerDatabases -ContextTypeName FullyQualifiedContextName

В примере будет создан Configuration класс, который устанавливает MigrationsDirectory в указанную папку «Migrations \ CustomerDatabases», которая относится к корневой папке проектов.

public Configuration()
{
    AutomaticMigrationsEnabled = false;
    MigrationsDirectory = @"Migrations\CustomerDatabases";
}


См. Также эту статью , в которой рассказывается о проекте с несколькими контекстами и папками миграции.

Кстати, если вы используете несколько папок миграции и несколько контекстов, пожалуйста, подумайте также о том, чтобы установить имя для схемы по умолчанию в методе OnModelCreating вашего производного класса DbContext (где конфигурация Fluent-API) является). Это будет работать в EF6:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.HasDefaultSchema("CustomerDatabases");
    }

Префикс таблиц базы данных префикса с именем схемы. Это позволит вам использовать более одного контекста с одной базой данных в сценарии, где у вас есть несколько групп таблиц, которые не зависят друг от друга. (Это также создаст отдельные версии таблиц MigrationHistory, в приведенном выше примере это будет CustomerDatabases.__MigrationHistory).

18
ответ дан Martin 19 December 2011 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: