Мне нужно обойти ошибку в 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) (Сервер)
Но странно то, что здесь работает intellisense и завершается тип.