PetaPoco KeepConnectionAlive 使用

PetaPoco KeepConnectionAlive use

我正在使用此方法在 PetaPoco 中获取我的数据库对象:

internal static Database GetCurrentDatabase()
    {
        if (HttpContext.Current == null)
        {
            if (Thread.GetData(Thread.GetNamedDataSlot(_databaseKey)) != null)
                return Thread.GetData(Thread.GetNamedDataSlot(_databaseKey)) as Database;
            else
            {

                var database = new Database("testDB");
                database.KeepConnectionAlive = true;
                database.EnableAutoSelect = true;
                database.CommandTimeout = 180;
                Thread.SetData(Thread.GetNamedDataSlot(_databaseKey), database);
                return database;
            }
        }
        else
        {
            if (HttpContext.Current.Items.Contains(_databaseKey))
                return HttpContext.Current.Items[_databaseKey] as Database;
            else
            {
                Database database = new Database("testDB");
                database.EnableAutoSelect = true;
                database.CommandTimeout = 180;
                database.KeepConnectionAlive = true;
                HttpContext.Current.Items[_databaseKey] = database;
                return database;
            }
        }
    }

我在 web.config 中的连接字符串:

<add name="testDB" connectionString="Data Source=192.168.10.10;Initial Catalog=testDB;User Id=test;Password=test;pooling='true'; Max Pool Size=200"
      providerName="System.Data.SqlClient" />

问题是连接池已启用。我必须将 KeepConnectionAlive 设置为 true 还是 false?这个属性有什么用?

是的,pooling已经开启了,不需要设置KeepConnectionAlive为true(其实设置为true会带来麻烦)