/// <summary> /// Upserts the given rows. /// </summary> /// <param name="objs">The objects to upsert.</param> /// <param name="commandTimeout">Number of seconds before command execution timeout.</param> /// <returns>The number of upserted rows.</returns> public int BulkUpsert(IEnumerable <T> objs, int commandTimeout = 30) { int count; if (AutoKeyColumn != null) { long maxAutoKey = MaxAutoKey(); Items.Add(objs); count = Access.BulkUpsert(objs, commandTimeout); GetList($"WHERE {AutoKeyColumn.ColumnName} > {maxAutoKey}", commandTimeout); } else { count = Access.BulkUpsert(objs, commandTimeout); if (AutoSyncInsert || AutoSyncUpdate) { BulkGet(objs, commandTimeout); } else { Items.Add(objs); } } return(count); }