Как я могу получить доступ к существующему контексту в ASP. NET Базовом приложении? - PullRequest
0 голосов
/ 26 марта 2020

Что я делаю?

Я делаю приложение API через ASP. NET Core. Я следовал этому уроку: https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio.

В чем проблема?

В уроке описано, как создать собственную модель, ее контекст и контроллер. Однако я могу получить доступ только к контексту с этого контроллера. Но что, если я хочу получить доступ к хранимым данным с другого контроллера, который не имеет этого контекста? Или, может быть, не из контроллера вообще, я мог бы хотеть получить доступ к контексту также из других классов. Так как контекстный класс не является stati c, мне нужен способ получить доступ к одному и тому же экземпляру (который передается в контроллер) из любого места.

Я думаю, что на самом деле это довольно базовые вещи c, но я не мог не найти нигде описанного. Вероятно, не могу правильно сформулировать мой вопрос.

Код

В контроллерах контекст передается при создании:

[Route("api/[controller]")]
[ApiController]
public class AuthTokensController : ControllerBase
{
    private readonly AuthTokenContext _context;

    public AuthTokensController(AuthTokenContext context)
    {
        _context = context;
    }

Класс контекста:

public class AuthTokenContext : DbContext
    {
        public AuthTokenContext(DbContextOptions<AuthTokenContext> options) : base(options) { }

        public DbSet<AuthToken> AuthTokens { get; set; }

1 Ответ

0 голосов
/ 26 марта 2020

Спасибо Энасу Усаме за предоставление ответа в комментариях.
Мне просто нужно было включить необходимый контекст в список аргументов конструктора контроллера, чтобы при получении запроса создавался контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...