J'essaie d'écrire une requête dans le contrôleur similaire à ce que j'ai dans ma procédure stockée SQL :
Select * FROM TableName Where aDate >= beginDate and aDate <= endDate
Dans mon contrôleur, j'ai déclaré 2 variables, qui recevront les valeurs d'entrée de mon fichier de vue :
DateTime? startDate = input.BeginDateInput;
DateTime? endDate = input.EndDateInput;
et la variable q qui prend les valeurs de db
var q = db.tblName.AsQueryable();
Actuellement, j'ai un tableau de toutes les valeurs basé sur la sélection, qui ressemble à ce qui suit :
var data = q.Select(
p =>
new
{
//...
WarrantyExpDate = p.WarrantyExpDate.ToShortDateString(),
//...
});
Lorsque j'ai essayé d'ajouter .Where() à la fin de la fonction
Select(...).Where(DateTime.Compare(Convert.ToDateTime(WarrantyExpDate), (DateTime)startDate)>0)
(raccourcir pour gagner du temps), je recevais une erreur WarrantyExpDate was not in the current context
. Après avoir effectué quelques recherches, j'ai essayé de recréer la suggestion de ce fil pour échanger la sélection et l'emplacement, mais ça retournait le même problème.
Quelqu'un peut-il m'indiquer ce que je fais mal ? Comment faire pour que Select et Where reconnaissent la même variable ?