public JoinClause(ObjectReference table, JoinType joinType, SimpleExpression joinExpression) { if (table == null) throw new ArgumentNullException("table"); _table = table; _joinType = joinType; _joinExpression = joinExpression; }
internal override IDictionary<string, object> FindOne(string tableName, SimpleExpression criteria) { try { return _adapter.FindOne(tableName, criteria); } catch (NotImplementedException) { return Find(tableName, criteria).FirstOrDefault(); } }
public IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria, IAdapterTransaction transaction) { return Find(tableName, criteria); }
internal override int Delete(string tableName, SimpleExpression criteria) { return _adapter.Delete(tableName, criteria, AdapterTransaction); }
internal override IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria) { return _adapter.Find(tableName, criteria, AdapterTransaction); }
/// <summary> /// Finds data from the specified "table". /// </summary> /// <param name="tableName">Name of the table.</param> /// <param name="criteria">The criteria. This may be <c>null</c>, in which case all records should be returned.</param> /// <returns>The list of records matching the criteria. If no records are found, return an empty list.</returns> public abstract IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria);
/// <summary> /// Finds a single record. /// </summary> /// <param name="tableName">Name of the table.</param> /// <param name="criteria">The criteria.</param> /// <returns>A dictionary containing the record.</returns> /// <remarks>This method has a default implementation based on the <see cref="Find(string,SimpleExpression)"/> method. /// You should override this method if your adapter can optimize the operation.</remarks> public virtual IDictionary<string, object> FindOne(string tableName, SimpleExpression criteria) { return Find(tableName, criteria).FirstOrDefault(); }
/// <summary> /// Updates the specified "table" according to specified criteria. /// </summary><param name="tableName">Name of the table.</param><param name="data">The new values.</param><param name="criteria">The expression to use as criteria for the update operation.</param><returns>The number of records affected by the update operation.</returns> internal override int Update(string tableName, IDictionary <string, object> data, SimpleExpression criteria) { return(_adapter.Update(tableName, data, criteria)); }
public virtual IDictionary<string, object> Upsert(string tableName, IDictionary<string, object> dict, SimpleExpression criteriaExpression, bool isResultRequired) { if (Find(tableName, criteriaExpression).Any()) { var key = GetKey(tableName, dict); dict = dict.Where(kvp => key.All(keyKvp => keyKvp.Key.Homogenize() != kvp.Key.Homogenize())).ToDictionary(); Update(tableName, dict, criteriaExpression); return isResultRequired ? Find(tableName, criteriaExpression).FirstOrDefault() : null; } return Insert(tableName, dict, isResultRequired); }
public virtual Func<object[], IDictionary<string, object>> CreateFindOneDelegate(Adapter adapter, string tableName, SimpleExpression criteria) { return adapter.CreateFindOneDelegate(tableName, criteria); }
public JoinClause(ObjectReference table, SimpleExpression joinExpression) : this(table, JoinType.Inner, joinExpression) { }
/// <summary> /// Finds data from the specified "table". /// </summary> /// <param name="tableName">Name of the table.</param> /// <param name="criteria">The criteria. This may be <c>null</c>, in which case all records should be returned.</param> /// <returns>The list of records matching the criteria. If no records are found, return an empty list.</returns> internal override IEnumerable <IDictionary <string, object> > Find(string tableName, SimpleExpression criteria) { return(_adapter.Find(tableName, criteria)); }
/// <summary> /// Deletes from the specified table. /// </summary><param name="tableName">Name of the table.</param><param name="criteria">The expression to use as criteria for the delete operation.</param><returns>The number of records which were deleted.</returns> internal override int Delete(string tableName, SimpleExpression criteria) { return(_adapter.Delete(tableName, criteria)); }
public int Delete(string tableName, SimpleExpression criteria, IAdapterTransaction transaction) { return Delete(tableName, criteria); }
public virtual IDictionary<string, object> Upsert(string tableName, IDictionary<string, object> dict, SimpleExpression criteriaExpression, bool isResultRequired, IAdapterTransaction transaction) { var transactionAdapter = this as IAdapterWithTransactions; if (transactionAdapter == null) throw new NotSupportedException("Transactions are not supported with current adapter."); if (transactionAdapter.Find(tableName, criteriaExpression, transaction).Any()) { transactionAdapter.Update(tableName, dict, criteriaExpression, transaction); return isResultRequired ? transactionAdapter.Find(tableName, criteriaExpression, transaction).FirstOrDefault() : null; } return transactionAdapter.Insert(tableName, dict, transaction, isResultRequired); }
/// <summary> /// Updates the specified "table" according to specified criteria. /// </summary><param name="tableName">Name of the table.</param><param name="data">The new values.</param><param name="criteria">The expression to use as criteria for the update operation.</param><returns>The number of records affected by the update operation.</returns> public override int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria) { return _adapter.Update(tableName, data, criteria); }
internal abstract IDictionary<string, object> FindOne(string getQualifiedName, SimpleExpression criteriaExpression);
/// <summary> /// Deletes from the specified table. /// </summary><param name="tableName">Name of the table.</param> /// <param name="criteria">The expression to use as criteria for the delete operation.</param> /// <returns>The number of records which were deleted.</returns> public abstract int Delete(string tableName, SimpleExpression criteria);
public SimpleQueryJoin(ObjectReference table, SimpleExpression joinExpression) { _table = table; _joinExpression = joinExpression; }
/// <summary> /// Creates a delegate which can accept an array of values to use as criteria against a cached template. /// When called, the delegate should return zero or more records using the passed values as criteria. /// </summary><param name="tableName">Name of the table.</param> /// <param name="criteria">The criteria to use as a template for the delegate</param> /// <returns>A <c>Func<object[], IDictionary<string, object>>"</c> which finds a record.</returns> public virtual Func<object[], IEnumerable<IDictionary<string, object>>> CreateFindDelegate(string tableName, SimpleExpression criteria) { throw new NotImplementedException(); }
public abstract object Min(string tableName, string columnName, SimpleExpression criteria);
/// <summary> /// Updates the specified "table" according to specified criteria. /// </summary> /// <param name="tableName">Name of the table.</param> /// <param name="data">The new values.</param> /// <param name="criteria">The expression to use as criteria for the update operation.</param> /// <returns>The number of records affected by the update operation.</returns> public abstract int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria);
public JoinClause(ObjectReference table, SimpleExpression joinExpression) { _table = table; _joinExpression = joinExpression; }
internal override IDictionary<string, object> FindOne(string tableName, SimpleExpression criteria) { return _adapter.FindOne(tableName, criteria); }
public override int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria) { int count = 0; foreach (var record in Find(tableName, criteria)) { UpdateRecord(data, record); ++count; } return count; }
internal override int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria) { return _adapter.Update(tableName, data, criteria, AdapterTransaction); }
public override int Delete(string tableName, SimpleExpression criteria) { List<IDictionary<string, object>> deletions = Find(tableName, criteria).ToList(); foreach (var record in deletions) { GetTable(tableName).Remove(record); } return deletions.Count; }
internal override IDictionary<string, object> FindOne(string tableName, SimpleExpression criteria) { return Find(tableName, criteria).FirstOrDefault(); }
public override IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria) { var whereClauseHandler = new WhereClauseHandler(new WhereClause(criteria)); return whereClauseHandler.Run(GetTable(tableName)); }
public int Update(string tableName, IDictionary<string, object> data, SimpleExpression criteria, IAdapterTransaction transaction) { return Update(tableName, data, criteria); }
public override IDictionary<string, object> Upsert(string tableName, IDictionary<string, object> dict, SimpleExpression criteriaExpression, bool isResultRequired) { return _adapter.Upsert(tableName, dict, criteriaExpression, isResultRequired, _adapterTransaction); }
/// <summary> /// Finds data from the specified "table". /// </summary> /// <param name="tableName">Name of the table.</param> /// <param name="criteria">The criteria. This may be <c>null</c>, in which case all records should be returned.</param> /// <returns>The list of records matching the criteria. If no records are found, return an empty list.</returns> public override IEnumerable<IDictionary<string, object>> Find(string tableName, SimpleExpression criteria) { return _adapter.Find(tableName, criteria); }
public virtual IDictionary<string,object> FindOne(string tableName, SimpleExpression criteria) { throw new NotImplementedException(); }
/// <summary> /// Deletes from the specified table. /// </summary><param name="tableName">Name of the table.</param><param name="criteria">The expression to use as criteria for the delete operation.</param><returns>The number of records which were deleted.</returns> public override int Delete(string tableName, SimpleExpression criteria) { return _adapter.Delete(tableName, criteria); }
internal override IDictionary <string, object> FindOne(string tableName, SimpleExpression criteria) { return(Find(tableName, criteria).FirstOrDefault()); }