首页 > 解决方案 > 我的 CallBimlScript 的参数声明中的字符串值列表应该使用哪种数据类型?

问题描述

我想将字符串数组的值作为参数传递给 CallBimlScript,就像此处分配的值一样:

// Retrieve table list into string array 
var tablesToInclude = ExternalDataAccess.GetDataTable(connectionWrk.ConnectionString,  
                                      "SELECT DISTINCT [TABLE_NAME] " +
                                      "FROM [ETL_WORK].[STG_TBL_CONFIG] " +
                                      "WHERE [TABLE_SCHEMA] = 'STG' " +
                                      "AND [LOAD_CONFIG] IN ('PAT','TAP'); "
                                      ).Rows.OfType<DataRow>().Select(r => r[0].ToString());

我通过此调用将其传递给 CallBimlScript:

<#=CallBimlScript("DoStuffWithTableNames.biml", connectionWrk, tablesToInclude)>

这是我正在调用的 BimlScript 的标题:

<#@ property name="connectionWrk" type="Varigence.Languages.Biml.Connection.AstOleDbConnectionNode" #>
<#@ property name="tablesToInclude" type="?" #>

哪种数据类型与我在 CallBimlScript 中使用的变量兼容?

标签: c#biml

解决方案


GetDataTable 方法返回System.Data.DataTable但是您使用 Linq 将数据行的第一个元素提取为字符串

我必须检查一下,但我认为您需要将 ToArray 或 ToList 链接到表达式,然后您需要在目标 Biml 脚本中指定更正可枚举的可迭代类型。

否则,您应该能够通过使用System.Type类来询问类型以确定在 Linq 调用中生成的类型。


推荐阅读