我一直在和Dapper一起玩,我有一个问题。有没有办法让我能够在我的 POCO 类中拥有枚举类型属性并使用 Dapper?似乎每次我添加一个 Enumerator 类型的属性时,都会出现以下异常:
System.NotSupportedException:dapper 不支持类型:*my_enum_type*
我在这里错过了什么吗?是否有一个属性可以附加到这些属性以指定它们中的哪些映射到数据库表列?
我一直在和Dapper一起玩,我有一个问题。有没有办法让我能够在我的 POCO 类中拥有枚举类型属性并使用 Dapper?似乎每次我添加一个 Enumerator 类型的属性时,都会出现以下异常:
System.NotSupportedException:dapper 不支持类型:*my_enum_type*
我在这里错过了什么吗?是否有一个属性可以附加到这些属性以指定它们中的哪些映射到数据库表列?
这是 dapper 中的一个老错误,请确保您使用最新版本。Dapper 用于对输入类型属性不执行过滤。
好的,我想通了,这是我的错,因为我没有在第一时间看到这一点。这就是我最初正在做的事情:
Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New User With {.UserID = userID})
但需要做的是:
Dim result = conn.Query("SELECT * FROM Users WHERE UserID = @UserID", New With {.UserID = userID})
换句话说,将 param 声明为匿名类型是必不可少的。如果您将 param 声明为特定类型,并且该类型包含 dapper 代码(例如 Enum)未涵盖的类型属性,则代码会因上述错误而崩溃。我的 User 类有一个 Enum 类型属性,它导致了问题。