Я знаю, что одним из способов использования контекста является оператор using .
Я использую его так же, как и в своих контроллерах
[ApiController]
public class MyController : ControllerBase
{
[HttpPost]
public ActionResult PostActionHere(ActionRequestClass request)
{
using (var context = new MyEntityFrameworkContext())
{
....
// use context here
context.SaveChanges()
....
}
}
}
Я бы хотелчтобы начать вводить его в мой контроллер.Главным образом потому, что я думаю, что его легче читать и он более однороден с внедрением зависимостей .NET Core.
[ApiController]
public class MyController : ControllerBase
{
private MyEntityFrameworkContext _myDb;
public MyController(MyEntityFrameworkContext myDb)
{
_myDb = myDb;
}
[HttpPost]
public ActionResult PostActionHere(ActionRequestClass request)
{
....
// use context here
_myDb.SaveChanges()
....
}
}
В моем startup.cs :
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyEntityFrameworkContext >(options =>
options.UseSqlServer(Configuration.GetConnectionString("MyEntityFrameworkDatabase")));
}
Меня беспокоит то, что, впрыскивая его, я теряю свойства утилизации, которые поставляются с заявлением using
.Это правда?Не стесняйтесь предлагать альтернативные подходы.