2017-08-18 7 views
2

私はFSharp.Data.SqlClient SQL型プロバイダを使用しています。データベーススキーマをローカルに格納する方法があるかどうかを知りたかったのです。F#SQL TypeProviders用にスキーマをローカルに格納する方法はありますか?

JSONやYAMLのような他のタイプのプロバイダでは、サンプルをローカルに格納できるため、タイププロバイダは着信データの「シェイプ」を知ることができます。 SQL型プロバイダでも同じことをしたいと思っていました。

はい、スキーマが変更されるたびにローカルに保存するように再生成することを意味します。

+1

答えはありません。https://github.com/fsprojects/SQLProvider/issues/178 – xuanduc987

+2

@ xuanduc987それは別のタイプのプロバイダです:)しかし、FSharp.Data.SqlClientもできません。 Sql.Data.TypeProviders.SqlDataConnection/SqlEntityConnectionは可能です。 – Tarmil

答えて

1

異なるプロバイダにはそれぞれ異なる機能があります。 FSharp.Data.SqlClientSQLProviderは現在これを行うことができません。しかし、(以前のビルトイン)FSharp.Data.TypeProvidersSqlDataConnectionSqlEntityConnectionことができます:

open FSharp.Data.TypeProviders 

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

これは、ファイルmydb.dbmlでスキーマを保存し、その後のコンパイルされますが、そこからの代わりに、データベースに接続し、それをロードします。スキーマが変更されたためにファイルを更新する必要がある場合は、ForceUpdatetrueに設定して再コンパイルし、falseに戻してください。 dbmlファイルをコミットすることができ、人々はデータベースにアクセスすることなくプロジェクトをコンパイルすることができます。

関連する問題