Я пытаюсь использовать Dapper dot net в F # для выполнения простого SQLite-запроса. Dapper возвращает коллекцию динамических объектов: использование их в C# является простым, но из того, что я понял, F # не имеет динамической реализации поиска свойств из коробки.Dapper dot net query в 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
Что является лучшим способом для реализации? оператора в этом случае?
Кажется, что эта нить отвечает на ваш вопрос: http://stackoverflow.com/questions/6150087/f-dynamic-object-access – pad
@pad Хороший ответ. Вы должны добавить свой ответ в качестве ответа, чтобы я мог его продвигать :-) –
@OnorioCatenacci: Я добавляю его в качестве ответа, не уверен, что стоит ответить :). – pad