Я думаю, что это известное ограничение цитат F # для LINQ переводчика. Насколько я знаю, переводчик оставляет подвыражения по мере их написания (например, условие в if .. then
или выражение после yield ..
), поэтому вы можете использовать только те конструкции, которые понимает C #.
Единственное место, где обрабатывается конвейерная обработка, это когда вы пишете:
<@ source |> Seq.filter (...) |> Seq.etc (...) @>
Вы можете видеть, что в исходном коде - поиск CallPipe
в LinqQueries.fs . Это определенно немного прискорбно, потому что и |>
, и <|
можно обработать, просто заменив их определением (что довольно просто). Я полагаю, что это будет улучшено в следующем выпуске F #, поэтому вы можете отправить электронное письмо по адресу fsbugs на microsoft dot com , чтобы убедиться, что эта ошибка не появляется потерял.