无法使用Dapper获取Long类型的数据

时间:2014-04-09 13:17:50

标签: c# sql .net oracle dapper

问题: 我无法在Oracle DB源中检索Long类型的列并将其设置为.Net中的类的字符串属性

详细信息: 在尝试使用dapper来解决SQL查询并获取结果时,我遇到了一个相当奇怪的情况。我不能分享实际的课程细节,但这里有一个样本。我有一节课:

public class MyClass
{
    public string VeryLongMessage { get; set; }
}

我发出一个短小精悍的查询,如下所示:

using (var con = ConnectionUtility.GetConnection("MyConnectionString"))
{
    var result = con.QueryAsync<MyClass>("SELECT VeryLongMessage FROM MyView");
}

但是当我检查结果中的值时,我在result的VeryLongMessage属性中得到一个空值。

还有其他人见过这样的问题吗?有什么想法或建议吗?

我已验证的内容: 我的dapper查询的列名和属性都匹配。属性类型是字符串,Oracle db的视图中的列是Long。

如果您需要更多详细信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

查看dapper issue 173

不幸的是,似乎有四种间接方式:

  • 修复数据库(在您的情况下,您不能)

  • 添加额外存储的finction以获取LONG作为CLOB。阅读Long to Varchar2 conversion..并在AskTom

  • 上查找类似主题
  • 修复小巧玲珑:)

  • 使用ADO.NET代替