vérification de l'entité vs dapper datetime non active

asp.net-mvc dapper entity-framework

Question

J'ai une entité et utilise également dapper, j'ai 1 formulaire avec 2 champs de date ... nommé avant et après afin que les utilisateurs puissent effectuer une recherche entre ces dates. Celui de l'entité fonctionne parfaitement mais celui de dapper ne fonctionne pas pour une raison quelconque ce qui pourrait éventuellement être faux ici est l'entité une

var article = (from x in db.Articles
                           where  x.created >= before && x.created <= after
                           select x);

et voici celui de dapper

var article = sqlConnection.Query<Article>("Select * from articles where created>=@befor AND created<=@afte ", new { befor = before, afte = after});

et oui, j'ai toutes les connexions pour Dapper fonctionnant comme il va à la base de données, mais pour une raison quelconque, il ne sélectionne pas les enregistrements entre ces 2 dates..une suggestion ..

Réponse acceptée

dapper est juste un wrapper autour de TSQL brut (avec une légère mise in garde, où dapper ajoute de la magie pour rendre les requêtes "in" de varadic plus simples). Alors; Si cela fonctionne dans TSQL, cela devrait fonctionner correctement dans dapper, tant que vos entrées ont du sens. Par exemple, je suppose que, dans cet exemple, before et after sont saisis comme DateTime non nullable, c'est-à-dire

DateTime before = ..., after = ...;
var article = sqlConnection.Query<Article>(
    "Select * from articles where created>=@befor AND created<=@afte ",
    new { befor = before, afte = after});

en guise de note, il serait peut-être plus évident d'utiliser simplement:

DateTime before = ..., after = ...;
var article = sqlConnection.Query<Article>(
    "Select * from articles where created>=@before AND created<=@after",
    new { before, after });

mais fondamentalement, tant que ces paramètres ont null valeurs non null qui sont DateTime s, cela devrait fonctionner correctement.


Réponse populaire

Le problème pourrait être que les valeurs before et after sont envoyées sous forme de string et que les paramètres régionaux en cours peuvent entraîner une interprétation incorrecte de la date.




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