/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="connection"></param> /// <param name="connectionString"></param> /// <param name="transaction"></param> /// <param name="enableValidation"></param> /// <returns></returns> internal static Func <DbDataReader, TEntity> Get(DbDataReader reader, IDbConnection connection, string connectionString, IDbTransaction transaction, bool enableValidation) { var result = (Func <DbDataReader, TEntity>)null; var key = GetKey(reader, connection); if (cache.TryGetValue(key, out result) == false) { result = FunctionFactory.CompileDataReaderToDataEntity <TEntity>(reader, connection, connectionString, transaction, enableValidation); cache.TryAdd(key, result); } return(result); }