对象池的使用
为了减少 EntityContext
构造时的开销,可以使用对象池技术实现对象的复用,当池里没有对象时才构造新的对象,每次使用时先从对象池中拿出,使用完成后再放入对象池。当程序闲置超过 2 分钟时,对象池将自动回收所有对象。
与 Entity Framework
一样,对象池的使用也是在 Startup.ConfigureServices 方法里进行配置:
namespace demo
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddFireasy(Configuration);
services.AddEntityContextPool<DbContext>(maxSize: 64);
}
}
}
参数 maxSize 可以指定对象池中对象的最大数量(默认为64),当超出此数值时,将构造新的对象,使用完后立即销毁。