Dapper returns 不同的列名

Dapper returns different column name

我正在使用 Dapper 在数据库中创建一个 select,而 return 以不同的方式显示列的名称。

有谁知道为什么会这样?

下图,左图(JSON return 来自 API),右图(SQL 服务器 Table)

JSON 结果:


C#代码:

控制器方法

IEnumerable<Romaneio> romaneios;
string query = "SELECT * FROM TB_ROMANEIOS";
romaneios = await connection.QueryAsync<Romaneio>(query)  

Dapper使用的Class

public class Romaneio
{
    public string ROMANEIO_ID { get; set; }
    public string PRODUTO_ID { get; set; }
    public string DESCRICAO { get; set; }
    public string QTD_PALLET { get; set; }
    public string QTD_CX { get; set; }
    public string QTD_TOTAL { get; set; }
    public string QTD_CX_PL { get; set; }
    public string QTD_UN_CX { get; set; }
    public int STATUS_ROMANEIO { get; set; }
    public DateTime DATA_ROMANEIO { get; set; }
}

你能post你要求 Dapper 映射到的 CLR 对象吗?

直接使用ADO.NET会得到相同的结果吗?

例如:

using(var conn = new SqlConnection("your connection string")
{
   await conn.OpenAsync();

   using(var cmd = new SqlCommand("select * from TB_ROMANEIS", conn)
   using(var rd = await cmd.ExecuteReaderAsync()) 
   {
       while(await rd.ReadAsync()){
          var test = rd.GetValue(rd.GetOrdinal("STATUS_ROMANEIO"));
          //what does test == here?
       }
   }
}

这也值得一问,因为我认为我们都曾在某个时候犯过这个错误。但是您确定图片中显示的数据库就是您要查询的数据库吗?

我遇到了同样的问题,我通过重写属性名称解决了这个问题,在您的 class 中,您使用的是这样的:ROMANEIO_ID。尝试重写为 romaneio_id.