Установка DataLoadOptions для DataContext в F # - PullRequest
1 голос
/ 22 марта 2011

Можно ли установить DataLoadOptions в контексте данных в F #?До сих пор мне не повезло, потому что DataLoadOptions.LoadWith () принимает System.Linq.Expressions.LambdaExpression , который кажется невозможным для создания экземпляра в F #

1 Ответ

2 голосов
/ 22 марта 2011

Я считаю, что это должно быть возможно. Вам нужно будет ссылаться на FSharp.PowerPack.Linq.dll, в котором добавлена ​​поддержка перевода цитат F # (написанных с использованием <@ fun x -> x.Foo @>) в деревья выражений C #. Нечто подобное должно сработать:

#r @"FSharp.PowerPack.Linq.dll"

open System
open System.Linq.Expressions
open Microsoft.FSharp.Linq.QuotationEvaluation

let e = <@ Func<int, int>(fun x -> 1 + x) @>
let lambda = e.ToLinqExpression() :?> LambdaExpression 

Обратите внимание, что в кавычке создается делегат Func<...>, который преобразуется в дерево выражений, которое можно преобразовать в LambdaExpression (обычные функции F # представлены по-разному).

...