在 ef core 2 中处理连接的最佳方法是什么

阿瑟

抱歉,如果之前回答过这个问题,我想知道在 MVC 6 中使用 EF Core 2.0 处理连接的最佳方法是什么。我应该使用 DBContext 的单例实例 (Servics.AddSingleton) 还是任何更好的方法来处理它。如果有多个 DBContext 实例,我最终会让我的实体进入断开连接状态。那这种情况怎么处理呢?

克里斯普拉特

首先,它有点令人讨厌,但没有 MVC 6 这样的东西。有 ASP.NET MVC 和 ASP.NET Core,其中 MVC 是在完整 .NET 上运行的旧框架,而 Core 是较新的框架在 .NET Core 上运行。

正如@DavidG 指出的那样,您永远不应该在单例范围内拥有上下文。您的上下文应该始终在请求范围内,或者 ASP.NET Core 的 DI 容器简单地称为“范围”。这将确保每个请求只有一个上下文实例,这正是您想要的。其他请求将拥有自己的实例这一事实不应该成为问题,除非您正在做跨越请求边界的讨厌的非线程安全的事情(您不应该这样做)。

最后,拥有分离的实体本身并不是问题。当你需要对它们做一些原子性的事情时,你只需附加它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章