是否可以在F#中的数据上下文中设置DataLoadOptions?到目前为止,我没有运气,因为DataLoadOptions.LoadWith()采用System.Linq.Expressions.LambdaExpression,似乎无法在F#中实例化
答案 0 :(得分:2)
我相信这应该是可能的。您需要引用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#函数的表示方式不同)。