所以我试图从一个表中查询,其中行有一个Id列,一个parentId链接到同一个表中的一行。当父级没有父级时,parentId等于Id
我试图仅查询顶级父级。
SQL for this如下所示:
SELECT * FROM Organisation WHERE Id = ParentId
所以我尝试使用SQL
在F#中创建相同的查询let [<Literal>] connectionString = "Hidden for obvious reasons"
type sql = SqlDataProvider<
ConnectionString = connectionString,
DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER,
IndividualsAmount = 1000,
UseOptionTypes = false >
let ctx = sql.GetDataContext()
let orgs = query {
for org in ctx.Dbo.Organisation do
where (org.Id = org.ParentId)
select org }
|> Seq.toArray
它编译好但是在运行时我得到以下Execption
An unhandled exception of type 'System.InvalidOperationException' occurred in FSharp.Core.dll
Additional information: variable 'org' of type 'FSharp.Data.Sql.Common.SqlEntity' referenced from scope '', but it is not defined
我不明白其他信息,任何人都可以帮忙解释吗?
答案 0 :(得分:0)
我认为这是一段时间前修复过的临时错误。如果没有,请向GitHub网站添加一个问题:https://github.com/fsprojects/SQLProvider