Dapper Kann kein Objekt des Typs 'Dapper.WrappedReader' in 'System.Data.SqlClient.SqlDataReader' umwandeln

c# dapper

Frage

Versuchen, SqlDataReader mit SqlDataReader zu bekommen, aber den Fehler auf den Titel bekommen. Unten ist der Code:

using (var reader = (SqlDataReader)con.ExecuteReader(query))
                    {
                        while (reader.Read())
                        {
                            //do stuff here with reader
                        } 
                    }

Akzeptierte Antwort

Wie Sie aus dem Quellcode sehen können , ist WrappedReader entweder:

#if DNXCORE50
    internal class WrappedReader : WrappedDataReader

Oder :

#else
    internal class WrappedReader : IDataReader, IWrappedDataReader

Sowohl WrappedDataReader als auch IWrappedReader definieren eine Reader Eigenschaft, mit der Sie den zugrunde liegenden SqlDataReader . Versuchen Sie also, Ihren Code zu ändern:

(SqlDataReader)((IWrappedDataReader)con.ExecuteReader(query)).Reader { ... }

Oder:

(SqlDataReader)((WrappedDataReader)con.ExecuteReader(query)).Reader { ... }

.Dispose() , möchten Sie vielleicht den ursprünglichen (gewickelten) Reader für Ihre using Klausel verwenden - damit wird es möglich, auf .Dispose() zu reagieren. Wenn Sie es so machen, können Sie den sql-Reader im Rumpf Ihrer using Klausel erhalten und von da an verwenden.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow