我正在尝试找出使用WebAPI和Entity Framework在我的平台上执行操作的最佳方法。
目前,我是在每个请求中创建一个新的连接:在每个控制器中,都会为每个方法实例化和处理一个对象。
public class SchedulerController : ApiController
{
private ApplicationDbContext db = new ApplicationDbContext();
protected override void Dispose(bool disposing)
{
if (disposing)
db.Dispose();
base.Dispose(disposing);
}
}
每次请求都创建连接,在我看来是一个完全无用的开销,会影响性能。我知道在Java上有一些工具(也许是Nutcracker?)可以处理某种连接池,以重复使用同一个连接,从而提高性能。那么在c# / ASP.NET / Azure平台上有类似的东西吗?
如果可以的话,我也很想了解在请求数增加时的性能比较。
编辑:这主要是指DbContext自身所做的缓存。