F# から SQL Server Compact Edition データベースに接続しようとしていて、型プロバイダーを使用しようとしています。これは Visual Studio 11 Beta ですので、それが原因で問題が発生する可能性があることは承知していますが、まだノウハウがないだけである可能性が高いと思います。
ただし、Microsoft.FSharp.Data.TypeProviders に CE 固有の型プロバイダーがないことに気付きました。通常の SqlDataConnection でうまくいくかどうかわからないので、そこに問題がある可能性があります。
ただし、接続を作成しようとすると、IDE は少なくとも CE データベースにアクセスしようとしていることを認識しているようです。
だから、私は次のコードを持っています:
type SqlConnection =
Microsoft.FSharp.Data.TypeProviders
.SqlDataConnection<ConnectionString = @"Data Source=C:\\Path\\Database.sdf">
let db = SqlConnection.GetDataContext()
したがって、これはかなり標準的なものであり、多かれ少なかれ新しい LINQ to SQL with type provider 項目メニューからまっすぐです。
接続文字列について表示されるツールチップは、「プロバイダー 'System.Data.SqlServerCe.3.5' がインストールされていません」です。それを調べると、Sql Server CE がインストールされていないことが問題であることを示しているようですが、ライブラリがあり、通常の SqlCEConnection を使用してデータベースに接続し、SqlCeCommands などを実行できます。また、3.5 ではなく 4.0 であるため、間違ったプロバイダーを探しているかどうかはわかりません。VS 11ベータ版でデータベースを作成したので、すべてのバージョンが一致する必要があるなどと考えていました。
要するに、私は何か間違ったことをしているのだろうか、それとも VS11 ベータ型プロバイダー ライブラリがまだ CE 4.0 をサポートしていないのだろうか、それともそれを実現するために他に何かする必要があるのだろうかと思っています。
ありがとう!