Utiliser la requête Linq pour comparer la date uniquement avec le champ DateTime
J'ai besoin de comparer la date seulement dans une requête Linq qui implique une datetime
champ. Toutefois, la syntaxe ci-dessous les résultats dans le message d'erreur suivant
The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
Personne ne sait comment extraire juste la date de sortie d'un datetime
champ?
var duplicate = from a in _db.AgentProductTraining
where a.CourseCode == course.CourseCode &&
a.DateTaken.Date == course.DateTaken.Date &&
a.SymNumber == symNumber
select a;
source d'informationauteur NealR
Vous devez vous connecter pour publier un commentaire.
Cela peut sembler un peu rond-point, mais vous pouvez utiliser le SqlFunctions de la classe de DateDiff méthode pour ce faire. Passez simplement à la fois des valeurs et de l'utilisation de "Jour" pour trouver la différence entre eux dans les jours (ce qui devrait être 0 si ils sont sur la même journée).
Comme suit:
Vous pouvez utiliser
EntityFunctions.TruncateTime()
sous l'espace de nomsSystem.Data.Objects
Ex.
Fonctionne comme un charme.
Mise à JOUR
Cette fonction ne fonctionne que lorsque vous l'interrogation des entités grâce à LINQ. Ne pas utiliser dans LINQ-Objet.
Pour EF6 utilisation DbFunctions.TruncateTime() sous Système.Les données.Entité de l'espace de noms.
Vous pouvez le faire comme ci-dessous:
vous devez utiliser
System.Data.Entity.DbFunctions.TruncateTime
essayer cette
si un.DateTaken contient le Temps aussi, alors consultez ces liens pour modifier votre date.
La Date de la propriété ne peut pas être utilisé dans LINQ to entities.
Comparer des Dates à l'aide de LINQ to entities (Entity Framework)
'Date' n'est pas pris en charge dans LINQ to entities. Seulement les initialiseurs, les membres de l'entité et l'entité de navigation propriétés sont prises en charge
http://forums.asp.net/t/1793337.aspx/1
C'est comment j'ai fini par le faire à une Date similaire de recherche que j'ai eu à considérer le temps (Heures et Minutes) aussi
Décoller l' .Date
Si le champ est un champ de type DateTime, il peut être comparé avec ==