-6ren"> -In this article它展示了如何使用 SqlCommandProvider类型。示例代码是这样的: use cmd = new SqlCommandProvider @salesMoreTh-6ren">
gpt4 book ai didi

带有 <"string"的 F# 构造函数,str>

转载 作者:行者123 更新时间:2023-12-01 01:57:21 24 4
gpt4 key购买 nike

In this article它展示了如何使用 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)
<... ,...> 是什么?在类型构造函数名称之前的含义以及为什么
第一个参数必须是字符串文字?它看起来像一个泛型,但它采用的是变量而不是类型。构造函数似乎正在接受 <> 中已经存在的连接字符串。部分。

最佳答案

尖括号是一个类型的配置。
在您的示例中,您正在定义一个类型并创建一个相同类型的实例。分开步骤就更清楚了。

定义一个类型。

type SalesPersonQuery = SqlCommandProvider<query, connectionString>

但要真正拥有该类型的实例,您必须创建它:
let command = new SalesPersonQuery()

现在您可以使用 command.Execute()而不是 SalesPersonQuery.Execute() .

有构造函数的原因是因为稍后(在运行时)您可以将连接字符串更改为与定义中提供的字符串不同的字符串,例如:
let command = new SalesPersonQuery(differentConnectionString)

您可以在 the documentation 中找到在配置部分:

Connection string can be overridden at run-time via constructor optional parameter



第一个参数可以是 SQL 脚本或 SQL 查询的路径。我想这就是它是一个字符串的原因:您还想如何定义 SQL 查询?

再次,从文档中:

Command text (sql script) can be either literal or path to *.sql file

关于带有 <"string"的 F# 构造函数,str>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com