[英]Interpolated strings in F#
我正在尝试在需要FormattableString
F# 中使用 Entity Framework Core 内插 SQL 查询函数。 然而令我惊讶的是,它不起作用,因为我找不到将常规 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"
运行该代码块会产生编译错误:
此令牌保留供将来使用
我一直在尝试谷歌搜索,但我找不到任何方法来让它工作,任何帮助将不胜感激!
正如 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
它可从 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://docs.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-50#string-interpolation
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.