我们正在使用依赖注入和实体框架6开发ASP.NET核心应用程序,我们正在与我的团队讨论数据库性能。我们使用Prefix监视我们的应用程序,并且每次发出请求时我们检测到EF6打开并关闭连接。这对于实体框架原则是好的,但如果我们发送大量请求(30个请求),只是SELECT请求,它会在每个请求时打开/关闭连接。
正如您所看到的,打开/关闭操作需要43毫秒的每个请求,这可能很烦人。发出请求的代码对HTTP请求使用Dbcontext
的单个实例。
我们尝试为每个请求创建一个唯一的连接,打开它并在HTTP请求的最后关闭它。所以我们从每个HTTP请求中都有一个唯一的Open和一个唯一的Close,但是我们这次从.NET代码中检测到了不良的性能,但是来自未知来源(可能是EF6?)
现在我们对这个性能问题有点迷失了。有什么更好的?这是使用EF6的正确方法吗?