/// <summary> /// Performs dialect-specific manipulations on the offset value before returning it. /// This method is applicable for use in limit statements only. /// </summary> internal static int? GetOffsetUsingDialect(RowSelection selection, Dialect.Dialect dialect) { int firstRow = GetFirstRow(selection); if (firstRow == 0) return null; return dialect.GetOffsetValue(firstRow); }
protected object GetPagingValue(object value, Dialect.Dialect dialect, QueryParameters queryParameters) { if (isTakeParameter) { int skipParameterValue = 0; if (skipParameter != null) skipParameterValue = skipParameter.GetSkipValue(queryParameters); return dialect.GetLimitValue(skipParameterValue , (int)value); } if (isSkipParameter) return dialect.GetOffsetValue((int)value); return value; }