/// <summary> /// 获取数据库连接,返回的连接已经打开(open);在 mvc 框架中不用关闭,框架会自动关闭连接。 /// 之所以要传入 EntityInfo,因为 ORM 支持多个数据库,不同的类型有可能映射到不同的数据库。 /// </summary> /// <param name="et"></param> /// <returns></returns> public static IDbConnection getConnection(EntityInfo et) { String db = et.Database; String connectionString = DbConfig.GetConnectionString(db); IDbConnection connection; getConnectionAll().TryGetValue(db, out connection); if (connection == null) { connection = DataFactory.GetConnection(connectionString, et.DbType); connection.Open(); setConnection(db, connection); if (shouldTransaction()) { IDbTransaction trans = connection.BeginTransaction(); setTransaction(db, trans); } return(connection); } if (connection.State == ConnectionState.Closed) { connection.ConnectionString = connectionString; connection.Open(); } return(connection); }