Это хорошая практика для передачи dbcontext в функцию?
Это хорошая практика, чтобы сделать это?
в действии контроллера
ValidateSomEntity(icontext, someid)
icontext.SaveChanges();
public ValidateSomEntity(IContext db_, int someid)
{
db_.SomEntity.FirstOrDefault(c=>c.Id == someid);
// do validate
}
или лучше сделать это в действии контроллера
ValidateSomEntity(someid)
icontext.SaveChanges();
public ValidateSomEntity(int someid)
{
usgin(var db_ = new SomeDbContext())
{
db_.SomEntity.FirstOrDefault(c=>c.Id == someid);
//do validate
}
}
моя проблема будет в том, что Icontext является интерфейсом dbContext и в контроллере построен на ninject, поэтому я не знаю, будет ли это проблемой при создании модульного теста для функции или контроллера
1 ответ
Если вы используете контейнер IOC, рекомендуемый подход заключается в том, чтобы вставить IContext в конструктор вашего контроллера по запросу Http, тогда вы можете использовать его в любой функции. Я бы не рекомендовал передавать контекст в вашу функцию.