在 LINQPad 中编写 F# 查询

本文关键字:查询 LINQPad | 更新日期: 2023-09-27 18:35:39

>我正在尝试使用 F# 构造针对数据库的查询,但我甚至无法编译最简单的查询。

我可以像这样构造一个 C# 查询:

from c in Categories
select c

一切正常。但是,当我尝试在 F# 中执行相同的操作时:

query { for c in Categories do
        select c }

我收到以下错误:

类型名称和/或对象构造函数的使用无效。如有必要,请使用"new"并将构造函数应用于其参数,例如"new Type(args)"。所需的签名为:Categories() : unit

LINQPad 附带了许多示例,但没有一个 F# 示例实际演示如何使用它来查询数据库。我也在互联网上搜索过,但我找不到任何使用 F# 在 LINQPad 中查询数据库的示例。我在这里错过了什么?

在 LINQPad 中编写 F# 查询

出于好奇,我决定尝试在 LinqPad 中使用 F#。我能够通过选择"F# 程序"而不是 F# 表达式来使其工作。我确信只使用表达式是可能的,但我 100% 不熟悉 F#,所以我只是做了足够的工作来获得一个工作示例。选择此选项给了我一行:

let dc = new TypedDataContext()

从那里,我按照此示例页面使此查询正常工作/执行:

let dc = new TypedDataContext()
let query1 = query { for c in dc.MyTable do
                     select c }
query1
|> Seq.iter (fun x -> printfn "SomeField: %s" x.SomeField)
如果要

在 LINQPad 中将其作为 F# 表达式运行,只需在映射表前面添加"this."。

query { for c in this.Categories do
        select c }