F#带<&引用;字符串“;,str>;
它显示了如何使用F#带<&引用;字符串“;,str>;,f#,F#,它显示了如何使用SqlCommandProvider类型。示例代码包含以下内容: use cmd = new SqlCommandProvider<" SELECT TOP(@topN) FirstName, LastName, SalesYTD FROM Sales.vSalesPerson WHERE CountryRegionName = @regionName AND SalesYTD > @salesMoreThan ORDER BY S
SqlCommandProvider
类型。示例代码包含以下内容:
use cmd = new SqlCommandProvider<"
SELECT TOP(@topN) FirstName, LastName, SalesYTD
FROM Sales.vSalesPerson
WHERE CountryRegionName = @regionName AND SalesYTD > @salesMoreThan
ORDER BY SalesYTD
" , connectionString>(connectionString)
use cmd=new-SqlCommandProvider(connectionString)
类型构造函数名称前面的
是什么意思?为什么
第一个参数必须是字符串文字?它看起来像一个泛型,但它采用的是变量而不是类型。构造函数似乎已经在
部分中接收了连接字符串。尖括号是类型的配置。
在您的示例中,您正在定义一个类型并在同一类型上创建一个实例。当台阶分开时更清晰
定义一个类型
type SalesPersonQuery = SqlCommandProvider<query, connectionString>
现在您可以使用命令.Execute()
而不是salersonquery.Execute()
之所以有构造函数,是因为稍后(在运行时)可以将连接字符串更改为与定义中提供的不同的字符串,例如:
let command = new SalesPersonQuery(differentConnectionString)
您可以在配置部分中找到:
可以在运行时通过构造函数可选参数重写连接字符串
第一个参数可以是SQL脚本或SQL查询的路径。我想这就是它是字符串的原因:否则您希望如何定义SQL查询
同样,从文档中:
命令文本(sql脚本)可以是文本,也可以是*.sql文件的路径
有没有办法用变量查询生成类型?我想把查询作为一个参数,我不这么认为。或者至少我在文档中没有看到这样的选项。我想您可能会尝试使用一个可变变量来操作它(我没有尝试过,所以您必须测试它是否可能)。但是,您失去了拥有不可变值的优势,比如在多线程环境中不需要锁定。
let command = new SalesPersonQuery(differentConnectionString)