2012-02-20 3 views
7

F #에서 Dapper dot net을 사용하여 간단한 SQLite 쿼리를 수행하려고합니다. Dapper는 동적 객체의 컬렉션을 반환합니다. C#에서 사용하는 것은 간단하지만 F #에서는 out-of-the-box의 동적 속성 조회 구현이 없습니다.F #의 Dapper dot net query

이 작동하지만 난 반사에 의존하지 않고이 작업을 수행하는 더 나은 방법이 있습니다 가정 :

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 

을 구현하는 가장 좋은 방법은 무엇입니까가? 이 경우 연산자?

+3

이 스레드가 귀하의 질문에 대답하는 것 같습니다 : http://stackoverflow.com/questions/6150087/f-dynamic-object-access – pad

+0

@pad 당신은 응답으로 답변을 추가해야합니다 .--) –

+0

@OnorioCatenacci : 답변으로 추가합니다. 답이 가치가 있는지 확신 할 수 없습니다. :) – pad

답변

6

This thread은 여러 가지 해결책으로 구성됩니다. 특히 FSharp.Interop.Dynamic은 NuGet에서 사용할 수 있으며 바로 사용할 수 있습니다.

+0

나는 쉬운 방법 (또는 외부 라이브러리없이)이 있기를 바랬습니다. 나는 위대한 권력/위대한 책임 등을 가정 ... :-) –