Dapper模型映射

本文关键字:映射 模型 Dapper | 更新日期: 2023-09-27 18:03:09

我一直在玩Dapper,我有一个问题。有没有一种方法让我能够有一个枚举类型的属性在我的POCO类和使用Dapper?似乎每次我添加一个类型为Enumerator的属性时,都会得到以下异常:

系统。NotSupportedException:类型:*my_enum_type*不是dapper支持

我错过了什么吗?是否有一个属性可以附加到这些属性,以指定哪些属性映射到数据库表列?

Dapper模型映射

这是dapper的一个老bug,请确保使用最新版本。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声明为特定类型,并且该类型包含的类型属性没有被apper代码(例如Enum)覆盖,则代码会因上述错误而崩溃。我的User类有一个Enum类型属性,它导致了这个问题。