public IEnumerable <IDictionary <string, object> > UpsertMany(string tableName, IList <IDictionary <string, object> > list, bool isResultRequired, Func <IDictionary <string, object>, Exception, bool> errorCallback) { foreach (var row in list) { IDictionary <string, object> result; try { var key = _adapter.GetKey(tableName, row); if (key.Count == 0) { result = new AdoAdapterInserter(_adapter).Insert(tableName, row, isResultRequired); } else { var criteria = ExpressionHelper.CriteriaDictionaryToExpression(tableName, key); result = Upsert(tableName, row, criteria, isResultRequired); } } catch (Exception ex) { if (errorCallback(row, ex)) { continue; } throw; } yield return(result); } }
public IEnumerable<IDictionary<string, object>> UpsertMany(string tableName, IList<IDictionary<string, object>> list, bool isResultRequired, Func<IDictionary<string, object>, Exception, bool> errorCallback) { foreach (var row in list) { IDictionary<string, object> result; try { var key = _adapter.GetKey(tableName, row); if (key.Count == 0) { result = new AdoAdapterInserter(_adapter).Insert(tableName, row, isResultRequired); } else { var criteria = ExpressionHelper.CriteriaDictionaryToExpression(tableName, key); result = Upsert(tableName, row, criteria, isResultRequired); } } catch (Exception ex) { if (errorCallback(row, ex)) continue; throw; } yield return result; } }