Vous trébuchant sur un défaut avec LINQ to SQL ou EF (je ne sais pas celui que vous utilisez). La solution directe consisterait à utiliser la propriété DateTime.Date
. Toutefois, elle n'est pas prise en charge dans les deux ORM, elle ne correspond pas à une méthode SQL.
Vous avez deux solutions:
évaluation stricte de la requête en utilisant ToList
:
var q = ctx.Table.ToList().Select(r => r.datetimefield.Date).Distinct();
créer un champ détaillant uniquement le composant de date dans la base de données. C'est la façon dont je vais habituellement, car vous pouvez rester dans la base de données et y exécuter la requête.
Cette question a la bonne réponse, vous voulez utiliser EntityFunctions.TruncateTime http://stackoverflow.com/questions/11524853/distinct-date-with-linq –