/// <summary> /// Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist. /// </summary> /// <param name="key">The key of the element to add.</param> /// <param name="value">The value to be added, if the key does not already exist.</param> /// <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IDictionary`2"/> is read-only.</exception> public TValue GetOrAdd(TKey key, TValue value) { FetchValue ii = new FetchValue(value); AddEntry(key, ref ii); return(ii.Value); }
/// <summary> /// Compiles the fragment. /// </summary> /// <param name="queryBuilder">The query builder.</param> /// <param name="engine">The engine.</param> public virtual void Compile(QueryBuilder queryBuilder, IEngine engine) { if (!engine.Options.TopSupported) { throw new ClauseNotSupportedException("Top clause is not supported in this engine."); } queryBuilder.Write("TOP("); if (engine.Options.TopAsParameters || FetchValue is IQueryFragment) { queryBuilder.WriteValue(FetchValue); } else { queryBuilder.Write(FetchValue.ToString()); } queryBuilder.Write(")"); if (PercentValue) { queryBuilder.Write(" PERCENT"); } if (WithTiesValue) { queryBuilder.Write(" WITH TIES"); } }
/// <summary> /// Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>. /// </summary> public bool TryAdd(TKey key, TValue value) { FetchValue ii = new FetchValue(value); return(InsertResult.Inserted == AddEntry(key, ref ii)); }