/ / Obtenir des événements en cours dans EF core - entity-framework, asp.net-core, ef-core-2.0

Obtenez des événements en cours dans EF core - entity-framework, asp.net-core, ef-core-2.0

J'ai quelques événements dans une base de données pour mon application d'enregistrement d'événements, où les dates peuvent être définies par

public DateTime? DateStart { get; set; }
public DateTime? DateEnd { get; set; }

Les deux champs sont nuls, et je veux obtenir les événements en cours si eiter 1) DateStart est la même date qu'aujourd'hui, ou 2) Est maintenant entre DateStart et DateEnd

public async Task<List<EventInfo>> GetOngoingEventsAsync()
{
return await _db.EventInfos
.Where(i =>
i.Published &&
i.DateStart.Value.Date == DateTime.Now.Date ||
i.DateStart.Value.Date <= DateTime.Now.Date <= i.DateEnd.Value.Date)
.OrderBy(s => s.DateStart)
.ToListAsync();
}

Cependant, mon code ci-dessus renvoie: Operator "<=" cannot be applied to operands of type "bool" and "DateTime"

Réponses:

1 pour la réponse № 1

La raison de l'erreur était la première partie de la condition i.DateStart.Value.Date <= DateTime.Now.Date sera validé et sera converti en Boolean. Après que vous essayiez de comparer Boolean avec DateTime ainsi <= i.DateEnd.Value.Date. C’est pourquoi j’ai séparé les deux conditions avec && opérateur.

(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)


0 pour la réponse № 2

Cela devrait être la forme correcte de votre code:

(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)