Я получил это сообщение при использовании выражения запроса 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 гораздо более надежны и просты в использовании.