我试图在F#中使用Entity内插SQL查询函数,它需要一个FormattableString。然而,令我惊讶的是,它并没有发挥作用,因为我无法找到将常规F#字符串转换为该类型的方法。我想,在C#中只做你做的事情就行了,但它不起作用。
let fromDbUser (u : Entity.User) =
{
name = u.Name
age = u.Age
phone = u.Phone
}
let mname = "Foo"
let ctx = new Entity.DatabaseContext()
ctx.User.FromSqlInterpolated($"Select * FROM User Where name = {mname};")
|> Seq.map(fromDbUser)
|> printfn "%A"运行该代码块将产生编译错误:
此令牌保留给以后使用。
我一直试图谷歌周围,但我没有找到任何办法,使这个工作,任何帮助将是最感谢的!
发布于 2020-02-07 21:49:16
发布于 2020-02-08 12:20:22
正如Dave所指出的,插值尚未实现。但是对于绝对需要FormattableString或IFormattable的方法,可以使用FormattableStringFactory.Create
let query (sql: FormattableString) =
printfn "%s" (sql.ToString(null, null))
let mname = "Foo"
let fstr = FormattableStringFactory.Create("Select * FROM User Where name = {0};", mname)
query fstr发布于 2020-11-17 04:36:44
它可以从F# 5.0中获得。
> let mname = "Foo" ;;
val mname : string = "Foo"
> let str = $"Select * FROM User Where name = {mname};" ;;
val str : string = "Select * FROM User Where name = Foo;"看看这个。https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-50#string-interpolation
https://stackoverflow.com/questions/60120969
复制相似问题