SqlDataProvider查询自己的数据?

时间:2016-02-25 15:03:35

标签: f#

所以我试图从一个表中查询,其中行有一个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

我不明白其他信息,任何人都可以帮忙解释吗?

1 个答案:

答案 0 :(得分:0)

我认为这是一段时间前修复过的临时错误。如果没有,请向GitHub网站添加一个问题:https://github.com/fsprojects/SQLProvider