我正在使用FSharp.Data.SqlClient SQL类型提供程序,我想知道是否有办法在本地存储数据库模式。
对于其他类型的提供程序,如JSON或YAML,您可以在本地存储样本,以便类型提供程序知道传入数据的“形状”。我想为SQL类型提供程序做同样的事情。
是的,我意识到这意味着每次架构发生变化时都会重新生成本地存储。
答案 0 :(得分:1)
不同的提供商具有不同的功能。 FSharp.Data.SqlClient
和SQLProvider
目前无法执行此操作。但是(以前内置的)FSharp.Data.TypeProviders
' SqlDataConnection
和SqlEntityConnection
可以:
open FSharp.Data.TypeProviders
type MyDb = SqlDataConnection<connectionString,
LocalSchemaFile = "mydb.dbml",
ForceUpdate = false>
这会将模式保存在文件mydb.dbml
中,后续编译将从那里加载而不是连接到数据库。如果由于架构已更改而需要更新文件,只需将ForceUpdate
设置为true
,然后重新编译,然后将其重新设置为false
。您可以提交dbml
文件,人们将能够在不访问数据库的情况下编译项目。