我想使用通用查询功能,例如:
let filter predicateFn =
predicateFn |>
fun f s -> query { for x in s do
where (f(x))
select x }
其中 f 应该是谓词函数。显然,这不能转换为 sql 查询。但是有没有解决这个问题的方法。我已经看到了 C# 的示例解决方案。
方法取自:Daniel Mohl 的 F# 的 Web、云和移动解决方案。
编辑:示例以澄清:
let userSorter = fun (u:users) -> u.Login
let sorted =
query { for user in dbConn.GetDataContext().Users do
sortBy ((fun (u:users) -> u.Login)(user))
select user.Login }
基本上,我想用 userSorter 替换 lambda。因为它是上面的代码运行,但这会失败:
let userSorter = fun (u:users) -> u.Login
let sorted =
query { for user in dbConn.GetDataContext().Users do
sortBy (userSorter(user))
select user.Login }