В проекте ASP NET Core используется Entity Framework Core.
Из метода контроллера Home я вызываю Task.Run для метода экземпляра класса MyClass
, где мне нужно получить доступданные из базы данных.
Я пытался передать _dbContext
в конструктор класса MyClass
, но получаю исключение
Невозможно получить доступ к удаленному объекту.
HomeController
[Route("api/[controller]")]
[EnableCors("AllowAllOrigin")]
[ApiController]
public class HomeController : ControllerBase
{
private readonly DataBaseContext _dbContext;
public HomeController (DataBaseContext dbContext)
{
_dbContext = dbContext;
}
[EnableCors("AllowAllOrigin")]
[HttpPost("[action]")]
public string UpdateBotSettings()
{
MyClass myClass = new MyClass(_dbContext);
Task task = Task.Run(() => myClass.AnyMethod());
}
}
MyClass
public class MyClass
{
private readonly DataBaseContext _dbContext;
public MyClass(DataBaseContext dbContext)
{
_dbContext = dbContext;
}
public async void AnyMethodAsync()
{
MyData myData = _dbContext.AnyData.Where(d => d.id == 1).FirstOrDefault(); // <- exception
}
}
Запуск
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
string connection = Configuration.GetConnectionString("ConnectionDB");
services.AddDbContext<DataBaseContext>(options => options.UseSqlServer(connection));
// another code
}
Подскажите, пожалуйста, как получить доступ к dbContext внутри экземпляра MyClass?