Это хорошая практика для передачи 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, тогда вы можете использовать его в любой функции. Я бы не рекомендовал передавать контекст в вашу функцию.

Другие вопросы по тегам