作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过 SQLProvider 访问 SQLite 数据库.我实际上可以连接到数据库并查询表中的数据。但是类型提供程序显示错误:Exception has been thrown by a target of an invocation
.并且智能感知并没有真正起作用,例如表或属性不显示。看截图:
由于表和类型出现不可访问 VS 显示 lookup on object of indeterminate type
尝试访问属性时出错(虽然它确实有效)。从表中提取数据也有效。因此类型提供程序可以访问数据库,但会显示这些错误。有没有办法让它正确识别数据库并访问其属性等,而不会出现错误。
我正在使用 64 位 SQLite 驱动程序。这是代码:
#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
最佳答案
这与当前的 SQLite 和 SQLTypeProvider(分别为 1.0.102.0 和 1.0.31)一起工作:
#if INTERACTIVE
#I @"..\packages\SQLProvider.1.0.31\lib"
#r "FSharp.Data.SqlProvider.dll"
#I @"..\packages\System.Data.SQLite.Core.1.0.102.0\lib\net46"
#r "System.Data.SQLite.dll"
#I @"..\packages\System.Data.SQLite.Linq.1.0.102.0\lib\net46"
#r "System.Data.SQLite.Linq.dll"
#endif
open System
open FSharp.Data.Sql
//open System.Data.SQLite
//open System.Data.SQLite.Linq
[<Literal>]
let connectionString = "Data Source="+ @"C:\tmp\databaseFile.db3"
[<Literal>]
let resolutionPath = __SOURCE_DIRECTORY__ + @"..\..\packages\System.Data.SQLite.Core.1.0.102.0\lib\net46"
type sql = SqlDataProvider<
Common.DatabaseProviderTypes.SQLITE,
connectionString,
ResolutionPath = resolutionPath,
CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL>
let ctx = sql.GetDataContext()
let table2 = ctx.Main.Table2 //DateTime
let table3 = ctx.Main.Table3 //Text
关于sqlite - 访问 SQLITE 数据库时出现 SqlTypeProvider 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905719/
我正在通过 SQLProvider 访问 SQLite 数据库.我实际上可以连接到数据库并查询表中的数据。但是类型提供程序显示错误:Exception has been thrown by a tar
我正在尝试使用 SQLProvider访问MySql数据库。到目前为止,我有这段代码: let [] resolutionPath = @"../mysql/" let [] connectionSt
我是一名优秀的程序员,十分优秀!