/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="dbFields"></param> /// <param name="dbSetting"></param> /// <returns></returns> internal static Func <DbDataReader, dynamic> Get(DbDataReader reader, IEnumerable <DbField> dbFields = null, IDbSetting dbSetting = null) { var key = GetKey(reader); if (cache.TryGetValue(key, out var result) == false) { result = FunctionFactory.CompileDataReaderToExpandoObject(reader, dbFields, dbSetting); cache.TryAdd(key, result); } return(result); }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="tableName"></param> /// <param name="connection"></param> /// <param name="transaction"></param> /// <returns></returns> internal static Func <DbDataReader, ExpandoObject> Get(DbDataReader reader, string tableName, IDbConnection connection, IDbTransaction transaction) { var result = (Func <DbDataReader, ExpandoObject>)null; var key = GetKey(reader, tableName, connection); if (cache.TryGetValue(key, out result) == false) { result = FunctionFactory.CompileDataReaderToExpandoObject(reader, tableName, connection, transaction); cache.TryAdd(key, result); } return(result); }