Отбросьте требуемое true / false с третьего уровня / шага 5 (или измените ваш порядок вызовов).Я пойду копать заметки, но я думаю Я вспоминаю, как это влияет на порядок параметров.Логично, что это имеет смысл - сначала вам нужно будет указать необходимые параметры, а затем перечислить необязательные параметры.
Я быстро воспроизвел репро, и вы можете проверить поведение, сделав 4 похожим на
<#=CallBimlScript(child, columnList, tableNorm, connectionWrk, table) #>
(или если вы изменили значения во втором уровне)
Мое репро
Код уровня 1
<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<# var connStrWrk = @"Data Source=.\dev2017;Initial Catalog=tempdb;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"; #>
<# var connectionWrk = SchemaManager.CreateConnectionNode("SchemaProvider", connStrWrk); #>
<# string child = "so_54450877.tier2.biml" ;
Varigence.Languages.Biml.Table.AstTableNode table = new Varigence.Languages.Biml.Table.AstTableNode(null);
table.Name = "tablename";
string columnList = "column,list";
string tableNorm = "tablenormname";
#>
<#=CallBimlScript(child, table, columnList, tableNorm, connectionWrk) #>
</Biml>
Код уровня 2
<#@ import namespace="System.Data" #>
<#@ property name="table" type="Varigence.Languages.Biml.Table.AstTableNode" #>
<#@ property name="columnList" type="String" #>
<#@ property name="tableNorm" type="String" #>
<#@ property name="connectionWrk" type="Varigence.Languages.Biml.Connection.AstOleDbConnectionNode" #>
<!-- Tier 2 debug -->
<# string child = "so_54450877.tier3.biml" ;
var results = ExternalDataAccess.GetDataTable(connectionWrk,"SELECT 'This is tier 2' AS TierName;") ;
foreach (System.Data.DataRow row in results.Rows)
{
for (int columnIndex = 0; columnIndex < results.Columns.Count; columnIndex++)
{
Write(string.Format("<!-- {0} -->\t", row[columnIndex]));
}
Write("\n");
}
#>
<#=CallBimlScript(child, columnList, tableNorm, connectionWrk, table) #>
<!-- Tier 2 end debug -->
Код уровня 3
<#@ import namespace="System.Data" #>
<#@ property name="hashTable" type="Varigence.Languages.Biml.Table.AstTableNode" required="False"#>
<#@ property name="tableNorm" type="String" required="True"#>
<#@ property name="LoadType" type="String" required="True"#>
<#@ property name="connectionWrk" type="Varigence.Languages.Biml.Connection.AstOleDbConnectionNode" required="True" #>
<!-- I exist -->
<#
string connstring = connectionWrk.ConnectionString;
var results = ExternalDataAccess.GetDataTable(connectionWrk,"SELECT 'This is tier 3' AS TierName;") ;
foreach (System.Data.DataRow row in results.Rows)
{
for (int columnIndex = 0; columnIndex < results.Columns.Count; columnIndex++)
{
Write(string.Format("!<-- {0} -->\t", row[columnIndex]));
}
Write("\n");
}
#>
Результаты
![Debug output](https://i.stack.imgur.com/93AdS.png)