0
votes

Comment obtenir l'enregistrement entier d'une collection qui a la dernière dateTime à l'aide de LINQ?

J'ai une entité qui a de nombreuses colonnes et possède une propriété de navigation à une autre entité dans une autre relation, maintenant dans ma propriété de navigation, j'ai un Col DonetiMestamp, maintenant je souhaite obtenir des enregistrements, y compris mes archives de propriété NAVI, mais seulement celle-ci. qui a le dernier DateTimeMestamp. Comment pouvons-nous le faire à l'aide de la requête Lamq Linq de Lambda?

Les entités ressemblent à xxx

}

donc chaque entité a beaucoup d'entité mais je veux seulement Cet Entityb record qui a la dernière datetime, comment puis-je faire cela à l'aide de l'expression Lambda et des opérateurs LINQ?

données ressemble à: - xxx

résultat: un Objet de xxx

}

J'ai essayé d'utiliser entitya.include (a => a.entitismebydescendances (B => B.DateTimeMestamp ) .First ()) Mais je continue à obtenir une erreur


6 commentaires

La condition doit être ajoutée dans l'endroit où la clause, non inclure


Il n'y a pas d'état, veulent juste en ordre de commander et prenez le premier enregistrement


De quelle version du cadre d'entité parlez-vous?


Ef6 et ef plus


est This utile?


oui ça a aidé


3 Réponses :


0
votes

Essayez:

var query = EntityA.OrderBy(a => a.EntitiesB.Min(b => b.dateTimeStamp.Date))
                .ToList()


0 commentaires

1
votes

Je suppose que vous utilisez l'ensemble de l'entité. Pour EFCORE, la bonne nouvelle est que cela viendra à l'avenir et est disponible dans Aperçu 5.0 pour Efcore: https://github.com/dotnet/efcore/commit/21b9a35db594f7a383e855f922babbe54b3d38c5

Comme pour l'instant dans un scénario de chargement impatient, dès que vous vous chargez de charger n'importe quel objet que vous faites référence. Vous pouvez charger les entités requises pour l'entitéb et inclure l'entité pour eux. Une solution de travail serait la suivante: xxx

peut essentiellement le chargement de tout et sélectionner ces objets dont le besoin. Après inclusion d'entitésb, j'ai inclus Evntityanavi à nouveau pour vous assurer que la relation est conservée. Après cela, sélectionnez simplement, "filtrer" et oubliez. (.Tolist () consiste à charger les données et à vous assurer que vous n'avez qu'une requête en cours d'exécution pour la DigneAreader, car nous continuons à continuer sur la requête)


0 commentaires

1
votes

Je veux obtenir des enregistrements, y compris mes archives de propriétés NAVI, mais uniquement celle qui a la dernière dateTimeMestamp. xxx

en mots: à partir de chaque objet Entitya dans la collection d'objets Entitya, sélectionnez une ou plusieurs propriétés. Commandez également tous les objets entityb de cette entité de cette entité par DateTimeMestamp décroissant, de sorte que le plus récent entitéb sera d'abord. À partir de cette séquence ordonnée d'objets entityb, sélectionnez plusieurs propriétés. À partir du résultat, prenez uniquement le premier, ou NULL si Entitya n'a aucun objet entityb.

simple commune bonjour!


0 commentaires