Sha*_*lan 2 f# function fluent-nhibernate
我尝试通过 FluentNHibernate 在 F# 项目中配置 NHibernate。
static member GetNHibernateConfig =
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(fun c -> c.FromConnectionStringWithKey("connectionString") |> ignore)
.ShowSql())
Run Code Online (Sandbox Code Playgroud)
Visual Studio 突出显示“c.FromConnectionStringWithKey”并显示错误:
根据该程序点之前的信息查找不确定类型的对象。在这个程序点之前可能需要一个类型注释来约束对象的类型。这可以允许解决查找。
我对此一无所知,但是通过在网络上搜索 API 文档,我会尝试更改
fun c ->
Run Code Online (Sandbox Code Playgroud)
到
fun (c:ConnectionStringBuilder) ->
Run Code Online (Sandbox Code Playgroud)
因为这
向我建议这可能是c.
编辑:
(显然类型是MsSqlConnectionStringBuilder。)
无论如何,更一般地说,如果您遇到 F# 而不是 C# 推断 lambda 类型,那么可能
Action或Func最简单的方法是显式添加ActionorFunc委托类型,以便 F# 正确解析重载。在这种情况下,我认为改变
.ConnectionString(fun c -> ...)
Run Code Online (Sandbox Code Playgroud)
到
.ConnectionString(Action<MsSqlConnectionStringBuilder>(fun c -> ...))
Run Code Online (Sandbox Code Playgroud)
修复它,这通常是解除阻塞的最方便的方法。
| 归档时间: |
|
| 查看次数: |
6214 次 |
| 最近记录: |