gpt4 book ai didi

function - F#:使用 FluntNHibernate 时查找不确定类型的对象

转载 作者:行者123 更新时间:2023-12-02 17:54:08 26 4
gpt4 key购买 nike

我尝试通过FluentNHibernate在F#项目中配置NHibernate。

 static member GetNHibernateConfig = 
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(fun c -> c.FromConnectionStringWithKey("connectionString") |> ignore)
.ShowSql())

Visual Studio 突出显示“c.FromConnectionStringWithKey”并出现错误:

根据该程序点之前的信息查找不确定类型的对象。在此程序点之前可能需要类型注释来约束对象的类型。这可能会解决查找问题。

最佳答案

我对此一无所知,但通过在网上搜索 API 文档,我会尝试 改变

fun c ->

fun (c:ConnectionStringBuilder) -> 

因为这个

http://fluentnhibernate.org/api/FluentNHibernate.Cfg.Db/PersistenceConfiguration%602.htm#ConnectionString

告诉我这可能是c的类型。

编辑:

(显然类型是MsSqlConnectionStringBuilder。)

无论如何,更一般地说,如果您遇到 F# 不推断 lambda 类型而 C# 却推断 lambda 类型,那么很可能

  • 您正在使用具有多个重载的方法
  • 重载的某些子集使用 ActionFunc

最简单的方法是显式添加 ActionFunc 委托(delegate)类型,以便 F# 正确解析重载。在这种情况下,我认为改变

.ConnectionString(fun c -> ...)

.ConnectionString(Action<MsSqlConnectionStringBuilder>(fun c -> ...))

修复它,这通常是解除封锁的最便捷方法。

关于function - F#:使用 FluntNHibernate 时查找不确定类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com