将dbcontext传递给函数是一种好习惯吗?

时间:2013-07-02 20:49:55

标签: entity-framework entity-framework-5

这样做很好吗?

控制器操作中的

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 个答案:

答案 0 :(得分:0)

如果您使用IOC容器,建议的方法是根据Http Request在控制器构造函数中注入IContext,然后您可以在任何函数中使用它。我不建议将上下文传递给您的函数。