Comment insérer DateTime (ou DateTime2) avec Dapper?

.net c# dapper datetime datetime2

Question

J'essaie de faire ce qui suit:

var p = new DynamicParameters();
p.Add(...);
p.Add(...);
// ideally I want to insert null for end date, but I also tried DateTime.MinValue
// or some other date, but doesn't help
p.Add("@endDate", null, DbType.DateTime, ParameterDirection.Input);
using (var con = new SqlConnection(ConnectionString))
{
    // stored procedure does 'select SCOPE_IDENTITY()' to return the id of inserted row.
    int id = con.Query<int>("StoredProcedureName", p, commandType: CommandType.StoredProcedure).First();
}

Cela lance "InvalidCastException" et je crois que cela est dû à la date. J'avais auparavant datetime2 (20) pour endDate dans la base de données SQL, et je l'ai changé pour datetime pour voir si cela corrige le problème, mais ce n'est pas le cas. Quelqu'un peut-il aider?

Réponse acceptée

La distribution non valide ici est que SCOPE_IDENTITY() renvoie réellement decimal . Les paramètres fonctionnent correctement.




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