Log4Net/C# - Отключите вход по умолчанию

Странно, но все ответы здесь бесполезны для меня. Для меня работал инициализатор

MigrateDatabaseToLatestVersion

Вот мое решение (я знаю, это может быть намного проще, но я его использую):

class MyDbMigrateToLatest : MigrateDatabaseToLatestVersion
{
}

public class MyDbContext: DbContext
{
    public MyDbContext() : base("DbName")
    {
        SetInitializer();
    }

    public MyDbContext(string connString) : base(connString)
    {
        SetInitializer();
    }

    private static void SetInitializer()
    {
        if (ConfigurationManager.AppSettings["RebuildDatabaseOnStart"] == "true")
            Database.SetInitializer(new MyDbInitializerForTesting());
        else
            Database.SetInitializer(new MyDbMigrateToLatest());
    }
}

public sealed class Configuration : DbMigrationsConfiguration
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(MyDbContext context)
    {
        // Whatever
    }
}

MyDbInitializerForTesting просто наследует от DropCreateDatabaseAlways, поэтому в каком-то конкретном случае (тестирование) вся база данных перестраивается. В противном случае он переносится в последнюю версию.

Мой источник: https://msdn.microsoft.com/en-us/data/jj591621.aspx#specific

7
задан Marijn 1 February 2012 в 10:33
поделиться

2 ответа

Удалите BasicConfigurator. Настройте () строку. Это - то, что та строка делает - добавляет ConsoleAppender, указывающий на Консоль.

7
ответ дан 7 December 2019 в 07:53
поделиться

Вы все еще видите сообщения в Visual Studio, если приложение компилируется в режиме выпуска? Это возможно это Отладка использования log4net. Запишите для показа ошибок так или иначе. Если это так, затем те сообщения не должны появляться в режиме выпуска.

0
ответ дан 7 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

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