2012-01-10 6 views
2

Je dois obtenir la requête du jour, le problème est que j'obtiens une erreur quand j'essaye de comparer la valeur qui vient du DB (qui est un DateTime), contre le DateTime.Today.Date valeur.Linq date et datetime de comparaison

Ce que j'essaye de réaliser est d'obtenir les registres du jour.

List<Client> _cliente = from c in db.Cliente 
         join v in db.Vendedor 
         on c.IDVendedor equals v.IDVendedor 
         where v.Fecha.Date.Equals(DateTime.Today.Date) 

Voici ce que j'obtiens: 'Le membre de type spécifié' Date 'n'est pas supporté par LINQ to Entities. Seuls les initialiseurs, les membres d'entité et les propriétés de navigation d'entité sont pris en charge. '

Répondre

9

Peut-être que vous pouvez faire quelque chose comme ceci:

var today = DateTime.Today; 
var tomorrow = today.AddDays(1); 

List<Client> _cliente = from c in db.Cliente 
        join v in db.Vendedor 
        on c.IDVendedor equals v.IDVendedor 
        where v.Fecha >= today && v.Fecha < tomorrow 
+1

Ceci est basé sur le fait que DateTime.Today retournera la date avec l'heure définie 00:00:00 – ivowiblo

+0

Bonne idée, est comme l'aide d'un entre, je vous remercie – Luis

+0

+ 1 façon Nice et bien rangé de faire la plage de dates comparer –

0

Vous pouvez utiliser la bibliothèque standard C# - Il y a un temps type d'intervalle (soustrayez une fois d'une autre, puis obtenir la valeur absolue du nombre de jours, comme suit:.

List<Client> _cliente = from c in db.Cliente 
        join v in db.Vendedor 
        on c.IDVendedor equals v.IDVendedor 
        where Math.Abs((v.Fecha.Date - DateTime.Today).Days) <= 1 
+0

Ne fonctionnait pas, a eu la même erreur – Luis

+0

Je crois qu'il devrait être 'DateTime.Today' comme ci-dessus. – Hogan

Questions connexes