F#中的小巧点网查询

Fra*_*ori 8 f# dapper

我正在尝试在F#中使用Dapper dot net来执行简单的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
Run Code Online (Sandbox Code Playgroud)

实施该方法的最佳方法是什么?在这种情况下运营商?

pad*_*pad 7

该主题包含几个针对您的问题的解决方案.特别是,FSharp.Interop.Dynamic可以在NuGet上使用并准备使用.