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

时间:2018-01-16 23:32:43

标签: entity-framework asp.net-core-2.0

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

1 个答案:

答案 0 :(得分:2)

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

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

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