如何使用F#中的复合键子句编写此C#连接? :
join k in DataContext.Catalogs on
new { id = o.IDENT, v = o.VZ } equals
new { id = k.IDENT, v = k.VZ }
这是类似的问题: groupby multiple columns in a F# 3.0 query 这还没有回答。但我无法相信在FSharp中写它是不容易的。
由于
答案 0 :(得分:10)
使用包含所需关键字段的元组:
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#中创建具有命名字段的匿名类型,就像您可以在C#中一样。元组可能是最接近和最惯用的翻译。请参阅Tomas的回答here。