toExpression<'a, 'b> f =
<@ Func<'a, 'b>(f) @>
|> LeafExpressionConverter.QuotationToExpression
|> unbox<Expression<Func<'a, 'b>>>
let testFun = <@ Func<UserRead, bool>(fun x -> x.Email = email) @> |> LeafExpressionConverter.QuotationToExpression |> unbox<Expression<Func<UserRead, bool>>>
let testFun2 = (fun x -> x.Email = email) |> toExpression<UserRead, bool>
А по факту testFun и testFun2 неодинаковые. Как это наколдовать?
Eхpression сишарпный?
Я вот тебе копипастну своего кода старого type Wrap = static member Handler(e: Expression<System.Action<Actor<'T>, 'T, #ILogBuilder>>) = e Wrap.Handler(Expr) — позволит нам писать в него обычные F# выражения вида «fun mb msg log -> ()», а на выходе получать Linq.Expressions.
Обсуждают сегодня