首先我們看看換行的代碼 。
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
<%= GetSqlParameterStatement(SourceTable.Columns[i]) %><% if (i < SourceTable.Columns.Count - 1) { %> ,<% } %>
<% } %>
顯示結果:
@OrderID int(4) ,
@CustomerID nchar(5) ,
@EmployeeID int(4) ,
@OrderDate datetime(8) ,
@RequiredDate datetime(8) ,
@ShippedDate datetime(8) ,
@ShipVia int(4) ,
@Freight money(8) ,
@ShipName nvarchar(40) ,
@ShipAddress nvarchar(60) ,
@ShipCity nvarchar(15) ,
@ShipRegion nvarchar(15) ,
@ShipPostalCode nvarchar(10) ,
@ShipCountry nvarchar(15)
我們再來看看如何讓它不換行。
<% for (int i = 0; i < SourceTable.Columns.Count; i++) { %>
<%= GetSqlParameterStatement(SourceTable.Columns[i]) %><% if (i < SourceTable.Columns.Count - 1) { %> ,<% } %><% } %>
顯示結果:
@OrderID int(4) , @CustomerID nchar(5) , @EmployeeID int(4) , @OrderDate datetime(8) , @RequiredDate datetime(8) , @ShippedDate datetime(8) , @ShipVia int(4) , @Freight money(8) , @ShipName nvarchar(40) , @ShipAddress nvarchar(60) , @ShipCity nvarchar(15) , @ShipRegion nvarchar(15) , @ShipPostalCode nvarchar(10) , @ShipCountry nvarchar(15)
發現區別了沒有,就是在模版代碼的最後一個括號,如果是換行寫括號,那麼生成的代碼,括號就換行,如果沒有換行寫括號,那麼生成的代碼就沒有換行。
由此,我們也得出了一個結論,在CodeSmith中,生成的代碼是依據模版代碼的格式的,模版代碼是什麼格式生成出來的代碼就是什麼格式,不需要有那些C#的轉義字符來定義格式。