6

このC#結合と複合キー句をF#で作成するにはどうすればよいですか?:

join k in DataContext.Catalogs on
   new { id = o.IDENT, v = o.VZ } equals
   new { id = k.IDENT, v = k.VZ }

これはこれと同様の質問です 。F#3.0クエリの複数の列をgroupbyしますが、 まだ応答されていません。しかし、FSharpで書くのは簡単ではないと信じられません。

ありがとう

4

1 に答える 1

11

必要なキー フィールドを含むタプルを使用します。

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# では名前付きフィールドを持つ匿名型を作成できないことに注意してください。タプルは、おそらく最も近い、最も慣用的な翻訳です。ここでトーマスの答えを見てください。

于 2012-09-14T17:41:53.740 に答える