public override void Visit(SqlSubquery expression) { // TODO: This is weird and should actually be handled in SqlSubquery.Accept(). _writer.WriteOpenParenthesis(); expression.Query.Accept(this); _writer.WriteCloseParenthesis(); if (expression.Alias != null) { _writer.WriteIdentifier(expression.Alias); } }
public void WriteValue_WhenBulkInsertStatement_WritesValues() { StringBuilder builder = new StringBuilder(); using (SqlWriter writer = new SqlWriter(builder)) { writer.WriteStartInsert(); writer.WriteStartInto(); writer.WriteTable("Users"); writer.WriteColumn("Id"); writer.WriteColumn("UserName"); writer.WriteColumn("Email"); writer.WriteStartValues(); writer.WriteOpenParenthesis(); Assert.AreEqual(SqlWriterState.StartValues, writer.WriteState); writer.WriteValue(15); writer.WriteValue("My user name."); writer.WriteValue("*****@*****.**"); writer.WriteEndValues(); Assert.AreEqual(SqlWriterState.EndValues, writer.WriteState); writer.WriteStartValues(); Assert.AreEqual(SqlWriterState.StartValues, writer.WriteState); writer.WriteValue(16); writer.WriteValue("My second user name."); writer.WriteValue("*****@*****.**"); writer.WriteEndValues(); Assert.AreEqual(SqlWriterState.EndValues, writer.WriteState); writer.WriteCloseParenthesis(); } Assert.AreEqual("INSERT INTO [Users] ([Id], [UserName], [Email]) VALUES ((15, 'My user name.', '*****@*****.**'), (16, 'My second user name.', '*****@*****.**'))", builder.ToString()); }
public void WriteColumn_WhenInsertStatement_WritesColumns() { StringBuilder builder = new StringBuilder(); using (SqlWriter writer = new SqlWriter(builder)) { writer.WriteStartInsert(); writer.WriteStartInto(); writer.WriteTable("Users"); writer.WriteColumn("Id"); writer.WriteColumn("UserName"); writer.WriteColumn("Email"); writer.WriteCloseParenthesis(); Assert.AreEqual(SqlWriterState.Into, writer.WriteState); } Assert.AreEqual("INSERT INTO [Users] ([Id], [UserName], [Email])", builder.ToString()); }