예제 #1
0
 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( );
         }
     }
 }
예제 #2
0
        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);
        }