Erreur d'analyse de chaîne avec Dapper

.net dapper database micro-orm orm

Question

J'ai le tableau suivant, abrégé:

CREATE TABLE [dbo].[TERMINAL] (
    [TERM_CODEID]    SMALLINT     NOT NULL,
    [TERM_ACTIVE]    SMALLINT     NOT NULL,
    [TERM_NAME]      VARCHAR (30) NOT NULL,
    [TERM_SLA]       CHAR (8)     NOT NULL,
    [TERM_SERIAL]    VARCHAR (8)  NULL,
    [TERM_VERSION]   VARCHAR (8)  NULL,

    [TERM_STATUS]    INT          NULL,
)

Lorsque j'essaie le code Dapper suivant - et je suis un novice complet de Dapper, je l'ai trouvé hier - je reçois une erreur:

using (var conn = new SqlConnection("data source=ourServer; initial catalog=ourDb;user id=sa;password=ourPassword;"))
{
    conn.Open();
    var terms = conn.Query<Terminal>("select * from TERMINAL");
}

L'erreur est:

Erreur d'analyse de la colonne 3 (TERM_SLA = 01010B01 - String)

Je ne vois aucune raison pour que quelque chose doive même "analyser" une chaîne, sans parler d'une erreur en le faisant. Qu'est-ce qui pourrait causer cela>

Réponse acceptée

Dapper s'attend à ce que le type de données .NET soit identique à celui de votre base de données. Term_Sla doit être de type String .


Réponse populaire

Voici mon expérience. J'espère que cela peut aider, quelqu'un:

J'ai eu la même erreur, et le type .net correspondait au type de données SQL; sauf que certaines données étaient nulles. Assurez-vous donc que vos données SQL ne sont pas nullables, sinon adaptez votre type de propriété .net en conséquence.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi