Подтвердить что ты не робот

Запись запросов F # в LINQPad

Я пытаюсь использовать F # для создания запроса к базе данных, но я не могу получить даже самые простые запросы для компиляции.

Я могу построить запрос С# следующим образом:

from c in Categories
select c

Все работает отлично. Однако, когда я пытаюсь сделать то же самое в F #:

query { for c in Categories do
        select c }

Я получаю следующую ошибку:

Неверное использование имени типа и/или конструктора объектов. При необходимости используйте "новый" и примените конструктор к его аргументам, например. new Type(args). Требуемая подпись: Categories() : unit.

LINQPad поставляется в комплекте с несколькими образцами, но ни одна из проб F # фактически не показывает, как использовать его для запроса к базе данных. Я также просмотрел интернет, но я не могу найти примеры с помощью F # для запроса базы данных в LINQPad. Что мне здесь не хватает?

4b9b3361

Ответ 1

Из любопытства я решил попробовать что-то работать с F # в LinqPad. Мне удалось заставить его работать, выбрав "F # Program" вместо выражения F #. Я уверен, что это возможно, используя только выражение, но я на 100% не знаком с F #, поэтому я просто сделал достаточно, чтобы получить рабочий пример. Выбор этой опции дал мне одну строку:

let dc = new TypedDataContext()

Оттуда я выполнил эту страницу примера, чтобы этот запрос работал/выполнялся:

let dc = new TypedDataContext()

let query1 = query { for c in dc.MyTable do
                     select c }

query1
|> Seq.iter (fun x -> printfn "SomeField: %s" x.SomeField)

Ответ 2

Вам просто нужно добавить "это". перед отображенной таблицей, если вы хотите запустить ее как выражение F # в LINQPad.

query { for c in this.Categories do
        select c }