Сначала у меня есть приложение, использующее код Entity Framework. Моя установка состоит в том, что у меня есть основной сервис, от которого наследуются все другие сервисы. Базовая служба содержит следующий код:
public static DatabaseContext db = new DatabaseContext();
public CoreService()
{
db.Database.Initialize(force: false);
}
Затем другой класс унаследует от CoreService, и, когда ему понадобится выполнить запрос к базе данных, он просто запустит такой код, как:
db.Products.Where(blah => blah.IsEnabled);
Тем не менее, я, кажется, получаю противоречивые истории о том, какая из них лучше.
Некоторые люди советуют НЕ делать то, что я делаю.
Другие люди говорят, что вы должны определить контекст для каждого класса (а не использовать базовый класс для его создания)
Другие говорят, что для КАЖДОГО вызова базы данных я должен обернуть его в блок использования. Я никогда не видел этого ни в одном из примеров от Microsoft.
Может кто-нибудь уточнить?
Сейчас я нахожусь в точке, где рефакторинг возможен и довольно быстр, поэтому я хотел бы получить несколько общих советов, если это возможно.