有没有办法在本地为F#SQL TypeProviders存储架构?

时间:2017-08-18 14:03:54

标签: sql sql-server f# type-providers

我正在使用FSharp.Data.SqlClient SQL类型提供程序,我想知道是否有办法在本地存储数据库模式。

对于其他类型的提供程序,如JSON或YAML,您可以在本地存储样本,以便类型提供程序知道传入数据的“形状”。我想为SQL类型提供程序做同样的事情。

是的,我意识到这意味着每次架构发生变化时都会重新生成本地存储。

1 个答案:

答案 0 :(得分:1)

不同的提供商具有不同的功能。 FSharp.Data.SqlClientSQLProvider目前无法执行此操作。但是(以前内置的)FSharp.Data.TypeProviders' SqlDataConnectionSqlEntityConnection可以:

open FSharp.Data.TypeProviders

type MyDb = SqlDataConnection<connectionString, 
                LocalSchemaFile = "mydb.dbml",
                ForceUpdate = false>

这会将模式保存在文件mydb.dbml中,后续编译将从那里加载而不是连接到数据库。如果由于架构已更改而需要更新文件,只需将ForceUpdate设置为true,然后重新编译,然后将其重新设置为false。您可以提交dbml文件,人们将能够在不访问数据库的情况下编译项目。