Я получил это сообщение при использовании выражения запроса F#: ошибка FS0039: неопределенное значение или конструктор "запрос"

let q = <@  seq {
                for i in [1..10] do
                    yield i  
        } |> Seq.head @>

q |> query |> ignore  //error FS0039

Я использую VS2012 и F# ядро "ReferenceAssemblies\Microsoft\FSharp\3.0\Runtime\v2.0\FSharp.Core.dll" (версия 2.3.0.0) в.NET 3.5;

Что я здесь пропустил?

1 ответ

Решение

Я могу ошибаться (версионность немного сбивает с толку), но если вы используете F# 3.0 в Visual Studio 2012, тогда вы сможете использовать вместо этого новый синтаксис выражения запроса:

query { for i in 1 .. 10 do
        select i
        head }

Это работает как в памяти, так и для баз данных SQL (а также для некоторых поставщиков типов). Для получения дополнительной информации см. Документацию MSDN. Если вы используете более старую версию (или целевую платформу), то я определенно рекомендую обновить - запросы F# 3.0 гораздо более надежны и просты в использовании.

Другие вопросы по тегам