如何在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编写它并不容易。

谢谢

最佳答案

使用包含所需关键字段的元组:

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#中使用命名字段创建匿名类型。元组可能是最接近,最惯用的翻译。参见Tomas的答案here

关于join - 如何在FSharp查询表达式中编写带有复合键子句的联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12423426/

10-10 11:47