SQLProviderでSQLiteデータベースにアクセスしています。私は実際にデータベースに接続し、テーブル内のデータを照会することができます。ただし、タイププロバイダにはエラー:Exception has been thrown by a target of an invocation
が表示されます。インテリセンスは実際には機能しません。テーブルまたはプロパティは表示されません。スクリーンショットを参照してください:アクセスできないVS現れテーブルや種類以来SQLiteデータベースにアクセスするとSqlTypeProviderエラーが発生する
プロパティを(それはしかし動作しない)にアクセスしようとするとlookup on object of indeterminate type
エラーを示しています。テーブルからデータを抽出することもできます。したがって、型プロバイダはデータベースにアクセスできますが、これらのエラーを表示します。 dbを正しく認識させ、エラーなしでそのプロパティにアクセスする方法はありますか?
私は64ビットSQLiteドライバを使用しています。ここで、コードは次のとおりです(それぞれ1.0.102.0および1.0.31)現在のSQLiteとSQLTypeProviderで意図したよう
#if INTERACTIVE
#r @"..\packages\SQLProvider.1.0.8\lib\FSharp.Data.SqlProvider.dll"
#r @"..\packages\System.Data.SQLite.Core.1.0.101.0\lib\net46\System.Data.SQLite.dll"
#r @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.Linq.dll"
#endif
open System
open FSharp.Data.Sql
[<Literal>]
let connectionString = "Data Source="+ @"C:\tmp\databaseFile.db3"
[<Literal>]
let resolutionPath = __SOURCE_DIRECTORY__ + @"..\..\packages\System.Data.SQLite.Core.1.0.101.0\lib\net46"
type sql = SqlDataProvider<
Common.DatabaseProviderTypes.SQLITE,
ConnectionString = connectionString,
ResolutionPath = resolutionPath,
CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL
>
let ctx = sql.GetDataContext()
let table2 = ctx.Main.Table2 //DateTime
let table3 = ctx.Main.Table3 //Text
query {
for r in table3 do
select (r.Date1)
} |> Seq.toList
query {
for r in table2 do
select (r.Date1)
} |> Seq.toList