在F#中为DataContext设置DataLoadOptions

时间:2011-03-22 17:28:53

标签: linq-to-sql f# datacontext

是否可以在F#中的数据上下文中设置DataLoadOptions?到目前为止,我没有运气,因为DataLoadOptions.LoadWith()采用System.Linq.Expressions.LambdaExpression,似乎无法在F#中实例化

1 个答案:

答案 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#函数的表示方式不同)。