private void buildSetterList(MatchResult result, UpdateBuilder builder) { MatchResult multiple = result.Matches[SqlGrammar.SetterList.Multiple.Name]; if (multiple.IsMatch) { MatchResult first = multiple.Matches[SqlGrammar.SetterList.Multiple.First]; Setter setter = buildSetter(first); builder.AddSetter(setter); MatchResult remaining = multiple.Matches[SqlGrammar.SetterList.Multiple.Remaining]; buildSetterList(remaining, builder); return; } MatchResult single = result.Matches[SqlGrammar.SetterList.Single]; if (single.IsMatch) { Setter setter = buildSetter(single); builder.AddSetter(setter); return; } throw new InvalidOperationException(); }
public void TestUpdate_MultipleSetters() { Table table = new Table("Table"); UpdateBuilder builder = new UpdateBuilder(table); builder.AddSetter(new Setter(builder.Table.Column("Column1"), new NumericLiteral(1))); builder.AddSetter(new Setter(builder.Table.Column("Column2"), new StringLiteral("Hello"))); Formatter formatter = new Formatter(); string commandText = formatter.GetCommandText(builder); string expected = "UPDATE Table SET Column1 = 1, Column2 = 'Hello'"; Assert.AreEqual(expected, commandText, "The wrong SQL was generated."); }
public void TestUpdate_Where() { Table table = new Table("Table"); UpdateBuilder builder = new UpdateBuilder(table); builder.AddSetter(new Setter(builder.Table.Column("Column"), new NumericLiteral(1))); builder.AddWhere(new EqualToFilter(builder.Table.Column("Column"), new NumericLiteral(2))); Formatter formatter = new Formatter(); string commandText = formatter.GetCommandText(builder); string expected = "UPDATE Table SET Column = 1 WHERE Column = 2"; Assert.AreEqual(expected, commandText, "The wrong SQL was generated."); }
public void TestUpdate_AliasedTable_WithAs() { Table table = new Table("Table"); UpdateBuilder builder = new UpdateBuilder(table, "t"); builder.AddSetter(new Setter(builder.Table.Column("Column1"), new NumericLiteral(1))); builder.AddSetter(new Setter(builder.Table.Column("Column2"), new StringLiteral("Hello"))); Formatter formatter = new Formatter(); string commandText = formatter.GetCommandText(builder, new CommandOptions() { AliasColumnSourcesUsingAs = true }); string expected = "UPDATE Table AS t SET Column1 = 1, Column2 = 'Hello'"; Assert.AreEqual(expected, commandText, "The wrong SQL was generated."); }