Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拉文德b/F#/Linq_Linq_F#_Ravendb - Fatal编程技术网

拉文德b/F#/Linq

拉文德b/F#/Linq,linq,f#,ravendb,Linq,F#,Ravendb,我是ravendb的新手,我有两个问题 我在那里存储了大约65k个对象,但只返回了128个:为什么会这样?(使用Robert P.OpenInitializedStore扩展) let printStoreData()= 使用store=DocumentStore.OpenInitializedStore() 使用session=store.OpenSession() 设qs=session.Query() printfn“%A”(qs.ToList()|>Seq.length) printS

我是ravendb的新手,我有两个问题

  • 我在那里存储了大约65k个对象,但只返回了128个:为什么会这样?(使用Robert P.OpenInitializedStore扩展)

    let printStoreData()=
    使用store=DocumentStore.OpenInitializedStore()
    使用session=store.OpenSession()
    设qs=session.Query()
    printfn“%A”(qs.ToList()|>Seq.length)
    printStoreData()
    
  • 我对Linq和Fsharp、f#查询表达式和Linq、查询表达式和Ravendb之间的关系感到非常困惑。我甚至在powerpack中看到一些Linq。谁能给我一个高层次的观点,什么适合哪里,或指向一个文件,这样做


默认情况下,Raven DB pages结果会阻止您意外返回过多数据和系统过载(这是基于SQL的系统中常见的性能问题)。您需要使用Seq.skip和Seq.take来获取其余结果。(这也可能是因为在RavenDB中,索引是异步处理的,因此保存后结果不立即可用,但在这种情况下,这似乎不太可能是问题的原因)

回答问题的第二部分: C#具有表达式树,其中C#linq表达式可以由编译器转换为语法树,而不是生成实际代码。RavenDB利用这一点将以linq表达式表示的查询转换为可以针对RavenDB运行的查询。F#有一个类似于C#的表达式树的功能,称为引号。引用使用不同的F#特定类型来表示已引用的代码。在许多方面,引用比C#等价物更强大,但RavenDB像大多数工具一样,使用C#表达式树而不是F#的引用。为了解决这个问题,有一个库,它是F#power pack的一部分,可以将F#的引用翻译成C#表达式树


我使用powerpack将引语翻译成C#表达式树的成功率有限。我发现使用raven db的“lucene api”,它既不依赖于引用,也不依赖于表达式树。

我刚刚看到。非常感谢您的指导。@JoelMueller您有什么可以引导的示例吗?@nicolas您可以在这里找到一大堆F#3.0 LINQ示例:
let printStoreData() =
    use store = DocumentStore.OpenInitializedStore() 
    use session = store.OpenSession() 
    let qs = session.Query<DataModel.simplequote>()
    printfn "%A" (qs.ToList() |> Seq.length )

printStoreData()