我需要解决bug of F#,并且需要一种使用自定义类型(小数的简单包装)的方法,但是看不到如何做:
open System.Data
open Npgsql
open Npgsql.TypeMapping
open NpgsqlTypes
open Npgsql.TypeHandlers.NumericHandlers
type money(value:decimal) =
member this.value = value
override this.ToString() = this.value.ToString()
let openConn(company:Option<string>) =
let map = new NpgsqlTypeMappingBuilder(PgTypeName = "decimal",
NpgsqlDbType = System.Nullable<NpgsqlDbType.Numeric>,
DbTypes = [| DbType.Decimal |],
ClrTypes = [| typeof<money> |],
InferredDbType = System.Nullable<DbType.Decimal> )
NpgsqlConnection.GlobalTypeMapper.AddMapping(map.Build()) |> ignore
let conStr = localConnectionString()
let conn = new NpgsqlConnection(conStr)
conn.Open()
conn
我被击中了
DataEngine.fs(73,73):错误FS0039:未定义类型“数字”。 (FS0039)(服务器)DataEngine.fs(69,69):错误FS0039:类型 未定义“十进制”。 (FS0039)(服务器)
但是奇怪的是,这里有智能感知工作,并完成了输入。