основано на Что нового в EF Core 2.0 - EF Core | Документы Microsoft
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(
options => options.UseSqlServer(connectionString));
}
, тогда вы можете
public class TiketsController : ControllerBase
{
private readonly MCContext _context;
public TiketsController (MCContext context)
{
_context = context;
}
}
Базовый шаблон для использование EF Core в приложении ASP.NET Core обычно включает в себя регистрацию пользовательского типа DbContext в системе внедрения зависимостей и последующее получение экземпляров этого типа через параметры конструктора в контроллерах. Это означает, что для каждого запроса создается новый экземпляр DbContext.
blockquote>, но если вам требуется высокая производительность / безопасное повторное использование: AddDbContextPool
public void ConfigureServices(IServiceCollection services) { services.AddDbContextPool
( options => options.UseSqlServer(connectionString)); } , тогда вы можете
public class TiketsController : ControllerBase { private readonly MCContext _context; public TiketsController (MCContext context) { _context = context; } }
Если этот метод используется, на Когда контроллер запрашивает экземпляр DbContext, мы сначала проверим, есть ли экземпляр в пуле. Как только обработка запроса завершается, любое состояние в экземпляре сбрасывается, и сам экземпляр возвращается в пул.
BLOCKQUOTE>
Необходимо будет выполнить сервисный вызов локатора (Resolve<T>()
) где-нибудь. Прием должен получить его максимально отдаленный. Для консольных приложений эта начальная загрузка происходит в Main()
метод. Сделайте это там и минимизируйте те вызовы Твердости в другом месте, и Вы будете великими. Для большинства зависимостей используйте инжекцию конструктора.
Консольные приложения не имеют никакого ограничения по веб-приложению или приложению форм для МОК. Можно использовать любого по Вашему выбору (Spring, Ninject, Единица, и т.д.). Большинство из них настраивается с XML-файлом вне Вашего консольного приложения, и некоторым нравится Ninjector, требуют конфигурации в Вашем приложении.
Я использовал Spring.NET из консольного приложения без проблем. Просто необходимо указать на него на файл конфигурации, и это поднимет трубку все зависимости. То, что Вы затем делаете с теми объектами, зависит от того, что Ваше консольное приложение пытается сделать, конечно.