无法将 F# 区分联合映射到 Npgsql 枚举
Cannot map an F# discriminated union to an Npgsql enum
我正在尝试将 F# 区分联合映射到 Npgsql 理解的枚举。我用这个 documentation 作为参考。
下面是代码示例:
open Npgsql
open NpgsqlTypes
type Colors =
| Red
| Green
| Blue
NpgsqlConnection.GlobalTypeMapper.MapEnum<Colors>("colors") |> ignore
不幸的是,我得到以下编译错误:
A generic construct requires that the type 'Colors' have a public default constructor
有什么方法可以为这个可区分的联合添加默认构造函数吗?
我没有使用过 Ngpsql,所以我不知道这是否是问题所在,但是您的 Colors
联合并不是您所写的枚举。要在 F# 中定义枚举,您必须 assign an integer to each value,如下所示:
type Color =
| Red = 0
| Green = 1
| Blue = 2
我正在尝试将 F# 区分联合映射到 Npgsql 理解的枚举。我用这个 documentation 作为参考。
下面是代码示例:
open Npgsql
open NpgsqlTypes
type Colors =
| Red
| Green
| Blue
NpgsqlConnection.GlobalTypeMapper.MapEnum<Colors>("colors") |> ignore
不幸的是,我得到以下编译错误:
A generic construct requires that the type 'Colors' have a public default constructor
有什么方法可以为这个可区分的联合添加默认构造函数吗?
我没有使用过 Ngpsql,所以我不知道这是否是问题所在,但是您的 Colors
联合并不是您所写的枚举。要在 F# 中定义枚举,您必须 assign an integer to each value,如下所示:
type Color =
| Red = 0
| Green = 1
| Blue = 2