Запись запросов 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. Что мне здесь не хватает?
Ответы
Ответ 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 }