【发布时间】:2011-03-22 17:28:53
【问题描述】:
是否可以在 F# 的数据上下文中设置 DataLoadOptions?到目前为止,我没有运气,因为 DataLoadOptions.LoadWith() 需要一个 System.Linq.Expressions.LambdaExpression,这似乎无法在 F# 中实例化
【问题讨论】:
标签: linq-to-sql f# datacontext
是否可以在 F# 的数据上下文中设置 DataLoadOptions?到目前为止,我没有运气,因为 DataLoadOptions.LoadWith() 需要一个 System.Linq.Expressions.LambdaExpression,这似乎无法在 F# 中实例化
【问题讨论】:
标签: linq-to-sql f# datacontext
我相信这应该是可能的。您需要引用 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# 函数的表示方式不同)。
【讨论】: