如何在 F# 中使用复合键子句编写此 C# 连接?:
join k in DataContext.Catalogs on
new { id = o.IDENT, v = o.VZ } equals
new { id = k.IDENT, v = k.VZ }
这是与此类似的问题: 在 F# 3.0 查询中对多个列进行分组 ,但仍未得到回答。但我不敢相信用 FSharp 编写它并不容易。
谢谢
如何在 F# 中使用复合键子句编写此 C# 连接?:
join k in DataContext.Catalogs on
new { id = o.IDENT, v = o.VZ } equals
new { id = k.IDENT, v = k.VZ }
这是与此类似的问题: 在 F# 3.0 查询中对多个列进行分组 ,但仍未得到回答。但我不敢相信用 FSharp 编写它并不容易。
谢谢
使用包含所需关键字段的元组:
query {
for o in DataContext.OTable do
join k in DataContext.Catalogs on
((o.IDENT, o.VZ) = (k.IDENT, k.VZ))
select (o.IDENT, k.VZ)
}
请注意,您不能像在 C# 中那样在 F# 中创建具有命名字段的匿名类型。元组可能是最接近和最惯用的翻译。在此处查看托马斯的回答。