在 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#。我能够通过选择"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 }