我在使用F#查询表达式时得到这个消息:错误FS0039:未定义的值或构造函数“;查询”; 让q=Seq.head@> q |>查询|>忽略//错误FS0039

我在使用F#查询表达式时得到这个消息:错误FS0039:未定义的值或构造函数“;查询”; 让q=Seq.head@> q |>查询|>忽略//错误FS0039,f#,query-expressions,F#,Query Expressions,我正在使用VS2012和F#core of“ReferenceAssemblies\Microsoft\FSharp\3.0\Runtime\v2.0\FSharp.core.dll”(版本2.3.0.0) 在.NET3.5上 我错过了什么 我可能错了(版本控制有点混乱),但是如果您在Visual Studio 2012中使用F#3.0,那么您应该能够使用新的查询表达式语法: let q = <@ seq { for i in [1..10] do

我正在使用VS2012和F#core of
“ReferenceAssemblies\Microsoft\FSharp\3.0\Runtime\v2.0\FSharp.core.dll”
(版本2.3.0.0) 在.NET3.5上

我错过了什么

我可能错了(版本控制有点混乱),但是如果您在Visual Studio 2012中使用F#3.0,那么您应该能够使用新的查询表达式语法:

let q = <@  seq {
                for i in [1..10] do
                    yield i  
        } |> Seq.head @>

q |> query |> ignore  //error FS0039
这既适用于内存,也适用于SQL数据库(以及某些类型提供程序)。有关详细信息,请参阅。如果您使用的是较旧的版本(或目标框架),那么我肯定会建议升级—F#3.0查询更加可靠且易于使用。

我可能错了(版本控制有点混乱),但是如果您在Visual Studio 2012中使用F#3.0,那么您应该能够使用新的查询表达式语法:

let q = <@  seq {
                for i in [1..10] do
                    yield i  
        } |> Seq.head @>

q |> query |> ignore  //error FS0039

这既适用于内存,也适用于SQL数据库(以及某些类型提供程序)。有关详细信息,请参阅。如果您使用的是较旧的版本(或目标框架),那么我绝对建议升级-F#3.0查询更加可靠且易于使用。

执行
开放系统。Linq
将解决该问题,但还有另一个与类型相关的错误,我不确定。感谢您的帮助,John Palmer.我将目标.NET framework转换为.NET 4.5,然后query得到了它的定义。可能在.NET 3.5及更低版本下不可用?执行
开放系统。Linq
将修复该问题,但还有另一个与类型相关的错误,我不确定。感谢您的帮助,约翰·帕尔默。我将目标.NET框架转换为.NET 4.5,然后查询得到了它的定义。也许它在.NET 3.5及更低版本下不可用?你是对的。事实上,我认为F#3.0的所有功能都适用于.NET2.0。你是对的。实际上,我认为F#3.0的所有功能都适用于.NET2.0。