【问题标题】:Dapper model mappingDapper 模型映射
【发布时间】:2011-07-27 07:28:19
【问题描述】:

我一直在玩Dapper,我有一个问题。有没有办法让我能够在我的 POCO 类中拥有枚举类型属性并使用 Dapper?似乎每次我添加一个 Enumerator 类型的属性时,都会出现以下异常:

System.NotSupportedException:类型:*my_enum_type* 不是 由 dapper 支持

我在这里遗漏了什么吗?是否有我可以附加到这些属性的属性来指定它们中的哪些映射到数据库表列?

【问题讨论】:

  • 你的意思是IEnumerator(不太可能)还是IEnumerable
  • 我的意思是 Enum 类型...抱歉造成混淆。

标签: c# .net dapper data-mapping


【解决方案1】:

这是 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 类型属性,它导致了问题。

【讨论】:

  • 我不确定这个,你能确认你在使用最新的 dapper 和 real 类型时遇到问题吗,我已经实现了一堆参数剥离
  • 你是对的,我使用最新版本的代码编译了一个新的 dll,它解决了这个问题。上次我这样做是一个多月前。抱歉给您添麻烦了……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 2019-01-06
相关资源
最近更新 更多