Странно, но все ответы здесь бесполезны для меня. Для меня работал инициализатор
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
Удалите BasicConfigurator. Настройте () строку. Это - то, что та строка делает - добавляет ConsoleAppender, указывающий на Консоль.
Вы все еще видите сообщения в Visual Studio, если приложение компилируется в режиме выпуска? Это возможно это Отладка использования log4net. Запишите для показа ошибок так или иначе. Если это так, затем те сообщения не должны появляться в режиме выпуска.