В этом подходе нет ничего плохого, если вы сохраняете ваш DbContext недолговечным и не пытаетесь их кэшировать или чрезмерно повторно использовать экземпляр.
Однако лично я нахожу это немногоподробный.Для внутренних приложений я обычно храню строки настройки и подключения в app.config и просто использую оператор using
.
using(var db = new MyContext())
{
var lotsOfStuff = db.SomeTable.Where(x => x.IsAwesome);
//
}
Сказав, что на самом деле есть только несколько правил, которые вы должны соблюдать (без этого самоуверенного ответа)
- Не пытайтесь чрезмерно использовать DbContext .Они внутренне кэшируются, и при их создании и закрытии возникают незначительные накладные расходы.
- Не пытайтесь без необходимости скрывать все за слоями абстракций.
- Всегда сначала кодируйте для удобства чтения и поддержки,если у вас нет необходимости кодировать производительность.
Обновление
Возможно, я что-то неправильно понимаю, но если я чаще сохраняю изменения в базе данных, то плох ли мой подход?Мелочи обновляются, когда что-то меняется, не большой кусок данных тут и там
Это зависит от того, как долго вы открываете свой DefaultDbContext
, я имею в виду, если это только на пару запросов в годВсе в порядке.
Контекст предназначен для открытия и закрытия довольно быстро, он не предназначен для того, чтобы оставаться открытым и живым в течение длительных периодов времени.Это иногда вызывает у вас больше проблем, чем нет.
Часто сохранение в базу данных, хотя и имеет смысл, но это не проблема.