Je commence par Dapper dans une application C # (j'utilise actuellement Entity dans la plupart des endroits) et j'ai un problème avec une requête simple.
Je continue à revenir "Doit déclarer la variable scalaire '@ReportId'" mais je le déclare!
db.Execute(@"INSERT INTO cdr_Requests (ReportId, ReportName, StartTime, EndTime, Status, ReportUrl, CreatedAt, UpdatedAt, Timezone, CdrReportRead) VALUES (@ReportId, @ReportName, @StartTime, @EndTime, @Status, @ReportUrl, @CreatedAt, @UpdatedAt, @Timezone, @CdrReportRead)", new { data.id, data.report_name, data.start_time, data.end_time, data.status, data.report_url, data.created_at, data.updated_at, data.timezone, data.cdrreportread });
Voici ma classe:
public class cdr_Request
{
public int ID { get; set; }
public string ReportId { get; set; }
public string ReportName { get; set; }
}
J'ai du mal à comprendre ce qui se passe!
Ok apparemment, j'ai eu un pet de cerveau complet et regardais la mauvaise ligne. J'ai changé pour cela et ça marche:
db.Execute(@"INSERT INTO cdr_Requests (ReportId, ReportName, StartTime, EndTime, Status, ReportUrl, CreatedAt, UpdatedAt, Timezone, CdrReportRead)
VALUES (@ReportId, @ReportName, @StartTime, @EndTime, @Status, @ReportUrl, @CreatedAt, @UpdatedAt, @Timezone, @CdrReportRead)", new {
ReportId = data.id,
ReportName = data.report_name,
StartTime = data.start_time,
EndTime = data.end_time,
Status = data.status,
ReportUrl = data.report_url,
CreatedAt = data.created_at,
UpdatedAt = data.updated_at,
Timezone = data.timezone,
CdrReportRead = 0
});
Juste au cas où l'un des ma F # peeps rencontre le «doit déclarer le problème de variable scalaire» - souvent la cause est que vous avez déclaré votre enregistrement de paramètres dans un module privé. Par exemple
module private MyStuff =
type Params = { MyParam : int }
Il vous suffira de déplacer le type ou de dé-privatiser le module.