我正在尝试从.net类型中查找DbType枚举值。我正在使用匹配声明。但是我无法弄清楚如何匹配字节[]。
let dbType x =
match x with
| :? Int64 -> DbType.Int64
| :? Byte[] -> DbType.Binary // this gives an error
| _ -> DbType.Object
如果有更好的方法来映射这些类型,我会接受建议。
答案 0 :(得分:10)
byte[]
,byte array
和array<byte>
都是同义词,但在此上下文中,只有最后一个没有括号才能生效:
let dbType (x:obj) =
match x with
| :? (byte[]) -> DbType.Binary
| :? (byte array) -> DbType.Binary // equivalent to above
| :? array<byte> -> DbType.Binary // equivalent to above
| :? int64 -> DbType.Int64
| _ -> DbType.Object