0

次のような 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<_> タイプと関係があると思います。

誰もこの問題に遭遇しましたか?

よろしくお願いします。

4

1 に答える 1

0

通常、メンバー変数に関連付けられている関数は、Sql ビルダー (式用) でマップする必要があります。たとえば、文字列の ToUpper() 関数は、SQL の UPPER() 関数に内部的にマップされます。Sql Builder は GetValueOrDefault が何であるかを認識していないため (この関数はどの SQL 関数にもマップされていないため)、エラーが発生しています。これに使用できる SQL ステートメントがわかりません。有効なケースがある場合は、Github でチケットを作成してください。

于 2013-08-09T23:47:14.850 に答える