Доступ к динамическим объектам в F#

Я параметризовал некоторые запросы linq и в итоге использовал динамический linq. Сначала у меня были некоторые проблемы с извлечением данных из динамических объектов, которые он создал, но мне удалось извлечь их с помощью FSharp. InteropDynamic, относительно лучшего способа параметризации linq-запросов, я планирую опубликовать еще один вопрос. Мой вопрос

  1. Это лучший способ получить доступ к динамическим linq и / или динамическим объектам (память и скорость?).
  2. Когда я впервые использую его, FSI дает мне сообщение.

    Binding session to '..\..\packages\Dynamitey.1.0.2.0\lib\net40\Dynamitey.dll'...

Что это такое?

Упрощенный код:

#if INTERACTIVE
#r "System.Data.Linq.dll"
#r @"..\packages\System.Linq.Dynamic.1.0.6\lib\net4\System.Linq.Dynamic.dll"
#r @"..\packages\FSharp.Interop.Dynamic.3.0.0.0\lib\portable-net45+sl50+win\FSharp.Interop.Dynamic.dll"
#r @"..\packages\Dynamitey.1.0.2.0\lib\net40\Dynamitey.dll"
#endif    

open System.Linq
open System.Linq.Dynamic
open FSharp.Interop.Dynamic

type Rec1 = { 
    City:string
    Country:string
    Zip:int
    }

let x =  [{City="London";Country="UK";Zip=1029};{City="Glasgow";Country="UK";Zip=30921};
               {City="London";Country="USA";Zip=90210}] 
let y = x.Where(fun x -> x.City ="London").Select("new(City,Zip)")
[for xx in y -> (xx?City:string),(xx?Zip:int)]

Это даст мне: val it : (string * int) list = [("London", 1029); ("London", 90210)] как и ожидалось.

Это хороший обзор использования динамических объектов из F#: F# динамический доступ к объектам

0 ответов

Другие вопросы по тегам