/// <inheritdoc/> public override void Inititalze(DbExpression content = null) { base.Inititalze(content); var context = GenerateContext; int index = 0; Units = new CommitUnitBase[Tables.Length]; foreach (var table in Tables) { if (index == 0) { Units[index++] = this.CreateUnitForIdentity(table, content, out _HasExpressionKey); } else { var unit = new CommitKeyUnit(table); foreach (var column in table.Keys) { unit.Add(this.CreateCommitUnitMember(column, null)); } this.CreateCommitUnit(unit, table.Members, content); Units[index++] = unit; } } }
internal static InsertValueFragment InsertKeyUnit(this ContentBase data, CommitKeyUnit unit, DbName name = null) { var context = data.GenerateContext; var target = new TableFragment(context, unit.Table, name); var insert = new InsertValueFragment(context, target, data.CommitObject, data.Items); data.CommitObject.Parent = insert; unit.Keys.Concat(unit.Members).ForEach(member => SetCommitMember(insert, member)); return(insert); }
/// <inheritdoc/> public override void Inititalze(DbExpression content = null) { base.Inititalze(content); Units = new CommitKeyUnit[Table.InheritSets.Length + 1]; int index = 0; this.Tables.ForEach(metadata => { var unit = new CommitKeyUnit(metadata); this.CreateCommitUnit(unit, metadata.Members, content); Units[index++] = unit; }); }
internal static InsertFragment InsertTemptable(this ContentBase data, TemporaryTableFragment temptable, CommitKeyUnit unit, DbName name = null) { var members = unit.Keys.Concat(unit.Members).Select(a => a.Metadata); var context = data.GenerateContext; var table = new TableFragment(context, unit.Table, name); var select = new SelectFragment(context, temptable); var current = new InsertFragment(context, table, select); foreach (var member in members) { select.CreateMember(null, temptable.GetMember(member)); current.CreateMember(null, member); } return(current); }