f# – SqlDataConnection类型提供程序 – 使用脚本参数设置数据库连接字符串

前端之家收集整理的这篇文章主要介绍了f# – SqlDataConnection类型提供程序 – 使用脚本参数设置数据库连接字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用sqlDataConnection类型提供程序的常规方法如下:
type dbSchema = sqlDataConnection<"Data Source=MYSERVER\INSTANCE;InitialCatalog=MyDatabase;Integrated Security=SSPI;">
let db = dbSchema.GetDataContext()

但是我们遇到一个问题,我们希望在f#脚本中使用此类型提供程序,其中数据库的连接字符串作为参数传递.所以我想做的是这样的:

let connectionString= Array.get args 1
type dbSchema = sqlDataConnection<connectionString>

但是它会给出错误“这不是常量表达式或有效的自定义属性值”

有没有办法做到这一点?

解决方法

不幸的是,没有办法做到这一点,类型提供程序需要一个编译时文字字符串.这样,当您编译应用程序时,类型提供程序能够连接和检索有关数据库的元数据并生成编译器的类型.您可以选择通过在表单中​​写入连接字符串将其提取到字符串文字
[<Literal>] let connString = "Data Source=..."
type dbSchema = sqlDataConnection<connString>

假设您的2个数据库具有相同的模式,则可以将运行时连接字符串作为参数提供给GetDataContext方法,如

let connectionString = args.[1]
let dbContext = dbSchema.GetDataContext(connectionString)

猜你在找的MsSQL相关文章