我有一个需要检查数据库的验证器。例如,它需要检查具有相同电子邮件地址的用户是否具有相同的功能。
我的问题是,如何将活动数据库上下文传递给验证程序以节省必须创建一个新上限?
或者我错过了这一点?
额外开放的数据库环境是否无关紧要?
答案 0 :(得分:2)
这是一个非常好的问题!一个我一直在想自己的问题。我发现这个答案非常好:
One DbContext per web request... why?
额外开放的数据库环境是否无关紧要?
如果查看MVC应用程序的任何自动生成的控制器代码,您将注意到每个控制器如何始终实例化另一个DBContext对象。我个人理解这一点,原则上有几个活跃的背景不是问题。我个人而不是创建另一个DBContext实例,而不是通过将代码发送到方法来复杂化代码,并且必须跟踪何时保存更改,以及受savechange操作影响的内容(在链接中谈到)。另一方面,我不会为循环的每次迭代实例化新的DBContexts,或者在相当小的开销堆叠的任何其他情况下。
希望这有帮助。