使用 npgsql 从 postgresql 读取日期值时出现以下错误:
This expression was expected to have type
DateTime
but here has type
NpgsqlTypes.NpgsqlDate
Run Code Online (Sandbox Code Playgroud)
现在 npgsql 文档引用了正在定义的显式运算符:
[C#]
public static explicit operator DateTime(
NpgsqlDate date
);
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从 F# 访问它。
有几种笨拙的、简单的方法可以实现我所需要的,但我感到失望和沮丧,因为我无法找到访问内置演员的方法。
我尝试了旧的 Convert.ToDateTime(...),但即使这样也不起作用。
有人有线索吗?谢谢。
可以通过调用类型上的op_Explicit(我在前面的注释中大小写错误;然后我自己没有尝试过)函数来访问显式转换运算符:
let date = NpgsqlDate.op_Explicit npgsqlDate
Run Code Online (Sandbox Code Playgroud)
为了方便起见,我还发现了多个地方(例如 Yan Cui 的博客)定义了 F# 运算符,例如!>for(all!) 显式转换,因此您可以说
let date = !> npgsqlDate
Run Code Online (Sandbox Code Playgroud)
我认为这是一个非常巧妙的方式。