2

我有一个需要检查数据库的验证器。例如,它需要检查用户是否具有相同的电子邮件地址或类似的东西。

我的问题是,如何将活动的 DB 上下文传递给验证器以节省创建新的上下文?

还是我错过了重点?

额外的开放数据库上下文无关紧要吗?

4

1 回答 1

2

这个问题问得好!我一直想知道自己的一个。我发现这个答案非常好:

每个 Web 请求一个 DbContext... 为什么?

额外的开放数据库上下文无关紧要吗?

如果您查看 MVC 应用程序的任何自动生成的控制器代码,您会注意到每个控制器总是如何实例化另一个 DBContext 对象。我个人理解这一点,原则上拥有几个活跃的上下文不是问题。就个人而言,我宁愿创建另一个 DBContext 实例,也不愿通过将代码发送到方法来使代码复杂化,并且必须跟踪何时保存更改,以及受 savechange 操作影响的内容(在链接中讨论)。另一方面,我不会为循环的每次迭代实例化新的 DBContexts,也不会在任何其他会堆积相当小的开销的情况下实例化。

希望这可以帮助。

于 2013-08-29T14:10:32.073 回答