我正在尝试使用OrmLite在F#3.0中构建一个简单的Count函数,如下所示:
let x =
use conn = dbFactory.Open() //IDbConnection
conn.Count<Area>(fun (x:Area) -> x.parent_id.GetValueOrDefault(0) > 0)
,其中
type Area() =
//...
member val parent_id = Nullable<_>() with get, set
但我收到错误:
System.InvalidOperationException: variable 'x' of type 'FSI_0029.Area' referenced from scope '', but it is not defined
以下作品:
let x =
use conn = dbFactory.Open()
conn.Count<Area>(fun (x:Area) -> x.id > 0)
所以我认为它与Nullable&lt; _&gt;有关。类型。
有没有人遇到过这个问题?
非常感谢,
答案 0 :(得分:0)
通常,与成员变量关联的函数需要在Sql构建器中映射(对于表达式);例如,字符串的ToUpper()函数在内部映射到sql的UPPER()函数。由于Sql Builder不知道什么是GetValueOrDefault(因为此函数未映射到任何SQL函数),所以它是错误的。我不确定可以使用哪种SQL语句,如果你有一个有效的案例,请在Github中创建一个票据。