private void UpdateRowVersions(List <UpdatedRow> updatedRows) { foreach (var row in updatedRows) { foreach (var column in row.Columns.Where(c => c.IsRowVersion)) { row.Row[column.Order] = _Database.NextRowVersion( ); } } }
private ArrayList InitializeNewRow(Table table, List <Column> columns) { var row = new ArrayList( ); for (int count = 0; count < table.Columns.Count; count++) { row.Add(null); } foreach (var column in table.Columns) { if (column.IsIdentity) { if (columns.Any(c => c.Name == column.Name) && table.IsIdentityInsertForbidden) { throw new SqlInsertIdentityException(table.Name, column.Name); } row[column.Order] = column.NextIdentityValue; table.LastIdentitySet = column.NextIdentityValue; ((MemoryDbConnection )_Command.Connection).GetMemoryDatabase( ).LastIdentitySet = column.NextIdentityValue; _Command.LastIdentitySet = column.NextIdentityValue; column.NextIdentityValue += column.Identity.Increment; } else if (column.IsRowVersion) { row[column.Order] = _Database.NextRowVersion( ); } else if (column.HasDefault && string.IsNullOrWhiteSpace(column.DefaultValue) == false) { row[column.Order] = Helper.GetValueFromString(column, column.DefaultValue); } else if (column.HasDefault && column.DefaultCallExpression != null) { var rawDataRows = new List <RawTableRow> { new RawTableRow { Name = table.Name, Table = table, Row = row } }; row[column.Order] = Helper.GetValue(column.DefaultCallExpression, column.NetDataType, new RawData(_Command), rawDataRows); } } return(row); }