Ich benutze Dapper, um eine Auswahl in der Datenbank zu machen, und die Rückkehr zeigt den Namen der Spalten unterschiedlich.
Weiß jemand, warum das passiert?
Bild unten, links (JSON gibt von API zurück), rechts (SQL Server-Tabelle)
JSON Ergebnis:
C # -Code:
Controller-Methode
IEnumerable<Romaneio> romaneios;
string query = "SELECT * FROM TB_ROMANEIOS";
romaneios = await connection.QueryAsync<Romaneio>(query)
Die von Dapper verwendete Klasse
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; }
}
Ich hatte das gleiche Problem und löste es, indem ich den Namen der Attribute neu schrieb, in Ihrer Klasse, die Sie so verwenden: ROMANEIO_ID
. Versuchen Sie romaneio_id
neu zu romaneio_id
.
Könnten Sie das CLR-Objekt posten, auf das Dapper aufmerksam machen soll?
Führt die Verwendung von ADO.NET direkt zum selben Ergebnis?
Beispielsweise:
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?
}
}
}
Es ist auch eine Frage wert, denn ich denke, wir haben alle diesen Fehler irgendwann gemacht. Aber bist du dir absolut sicher, dass es sich bei der im Bild gezeigten Datenbank um diejenige handelt, die du abfragst?