Более точечный сетевой запрос в F # - PullRequest
8 голосов
/ 20 февраля 2012

Я пытаюсь использовать Dapper dot net в F # для выполнения простого запроса SQLite.Dapper возвращает коллекцию динамических объектов: использовать их в C # просто, но, как я понял, F # не имеет встроенной реализации поиска динамических свойств.

Это работает, но я полагаю, что есть и лучшиеспособы сделать это, не прибегая к рефлексии:

let (?) x prop =
    let flags = BindingFlags.GetProperty ||| BindingFlags.InvokeMethod
    x.GetType().InvokeMember(prop, flags, null, x, [||])

let doQuery () =
    //...
    let conn = new SQLiteConnection (connString)
    conn.Open ()

    conn.Query("select first_name from customers")
        |> Seq.map (fun c -> c ? first_name)
        |> List.ofSeq

Каков наилучший способ реализации?оператор в этом случае?

1 Ответ

7 голосов
/ 20 февраля 2012

Эта тема состоит из нескольких решений вашей проблемы.В частности, FSharp.Interop.Dynamic доступен на NuGet и готов к использованию.

...