对象池的使用


  为了减少 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),当超出此数值时,将构造新的对象,使用完后立即销毁。