Cela semble être une chose simple à faire, mais EF ne supporte pas les propriétés comme DateTimeOffset.DateTime
ou DateTimeOffset.LocalDateTime
ou même DateTime.Date
. J'essaie de filtrer un champ de type DateTimeOffset uniquement par le composant DateTime (c'est-à-dire le "DateTime" local), ce qui est une chose simple à faire dans SQL simple: where cast(x as datetime) = '2016-12-14'
. Il existe un DbFunctions.TruncateTime
, mais aucun TruncateOffset
correspondant.Comment faire pour transmettre datetimeoffset à datetime dans l'infrastructure de l'entité?
Il ne semble tout simplement pas possible de convertir ou convertir un objet DateTimeOffset
en un objet normal DateTime
qui fonctionne dans linq-to-entities. La seule conversion est implicite de DateTime
à DateTimeOffset
, mais pas l'inverse.
'TruncateTime' a deux surcharges' TruncateTime (Nullable) 'et' TruncateTime (Nullable ) ' –
Eldho
Qui supprime le TIME. Je veux obtenir le DateTime (date et heure) d'un DateTimeOffset, sans le décalage. Il est complètement inutile de prendre en charge le type si vous ne pouvez pas obtenir à la partie DateTime du DateTimeOffset. Un DateTimeOffset est équivalent à un DateTime UTC, il sépare simplement le DateTime du Décalage. Et si je ne peux pas interroger la partie DateTime de la DateTimeOffset dans EF, cela ne vaut rien. Comme je l'ai dit, en langage SQL simple, c'est simplement 'cast (x as datetime)' où x est un champ DateTimeOffset. Ils ont vraiment besoin d'une fonction TruncateOffset. – Triynko