【发布时间】:2011-05-13 18:28:49
【问题描述】:
我想创建几个计算表达式,用于访问数据库并返回一个类似这样的项目列表(我在代码 cmets 中也有问题):
let foo x y z = proc "foo" {
let! cmd = proc.CreateCommand() // can I do this?
do! In "x" DbType.Int32 // would i gain anything by replacing DbType with a union
// type since the names would match actual data types?
do! In "y" DbType.String 15;
cmd?x <- x
cmd?y <- y
use! r = cmd.ExecuteReader() // would this be bad form for creating a workflow builder?
return! r {
let item = MyItem()
do! item.a <- r.GetInt32("a")
do! item.a <- r.GetString("b")
do! item.c <- r.GetDateTime("c")
yield! item
}
}
如何创建一个工作流构建器,使其实例接受参数?
let proc name = ProcedureBuilder(connStr, factory) // how do I do this?
【问题讨论】:
-
你见过FsSql吗? github.com/mausch/FsSql 还是 Ademar 的 sql comp.expr? ademar.name/blog/2010/10/a-recipe-for-typed-sql-databas.htmlademar.name/blog/2010/10/typed-sql-access-second-take.html
-
我没有,我去看看。谢谢
-
@Daniel ;-) @kvb 已经有了很好的答案,所以我可以休息一下。虽然我最近写的代码使用了这个,所以在这里分享一下。
-
酷!我从来没有想过要尝试这个。