2015-07-14 2 views
1

Я хотел бы иметь log4net log в моей базе данных. Я добавил AdoNetAppender, как указано в docs. Документы также дают определение для создания таблицы журналов. Поскольку я использую Entity Framework с кодом First, и я часто создаю базу данных (DropCreateDatabaseAlways) во время разработки, я не хочу вручную создавать таблицу. Вместо этого я попытался создать класс Log, который соответствует определению в документах.Вход в базу данных с кодом EF Сначала

public class Log 
{ 
    public int Id { get; set; } 
    public DateTime Date { get; set; } 
    public string Thread { get; set; } 
    public string Level { get; set; } 
    public string Logger { get; set; } 
    public string Message { get; set; } 
    public string Exception { get; set; } 
} 

Однако при использовании AdoNetAppender я получаю ошибку, которая, кажется, не связанные

Невозможно удалить базу данных «Сеть САШ-MyDB-20150625044347», потому что в настоящее время используется.

но это исчезает, если я вывожу AdoNetAppender.

Как я могу сначала войти в свою базу данных с помощью кода Entity Framework? Спасибо за любую помощь.

+0

Вы можете попробовать выдачи вызова, такие как 'context.Set (); 'перед любой инициализацией коды' log4net'. Я подозреваю, что структура протоколирования подключается к базе данных до того, как EF пытается сбросить и воссоздать базу данных, что приведет к сбою операции отказа. –

ответ

2

answer here может решить вашу проблему. Основная проблема заключается в том, что база данных по-прежнему имеет открытое соединение.

короткий клип используется Pooling=false. Будучи тем, что это в разработке, вам не нужно объединять.

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

Надеется, что это помогает

+0

'Будущее, что это в разработке, вам не нужно объединять.' Что будет делать OP, когда пришло время для доставки? –

+0

@JurgenCamilleri, когда они отправляют его, это не будет падением и создаваться всегда (I_HOPE), поэтому проблема с открытым подключением не должна быть проблемой. И настройка преобразования для изменения строки подключения для использования пула для релиза решает для изменения настроек. Надеюсь, я правильно отвечу на ваш вопрос. – workabyte

+0

Я думаю, что проблема все равно сохранится, но вы можете быть правы. –

Смежные вопросы