Question

Je suis un problème avec cette requête LINQ:

from PersistedFileInfo fi in m_Database
from PersistedCommit commit in m_Database
where commit.FileIDs.Contains( fi.ID )
where fi.Path == <given path>
select new Commit( m_Storage, commit );

Comme vous pouvez le voir, chaque PersistedCommit contient un Collection<int> appelé FileIDs qui le relie à ses PersistedFileInfos. Je veux sélectionner tous les commits précédents d'un Fileinfo spécifique (qui est identifié par son chemin).

J'ai environ 800 PersistedFileInfos et 10 PersistedCommits. La requête prend environ 1,5 secondes - ce qui est dans mon opition beaucoup trop longtemps. Le contructor du Commit objet enregistre uniquement les deux arguments donnés -. Il n'y a pas Timeloss, ici

Ma question:
Cette requête peut être réécrite pour effectuer une meilleure - ou est-ce un problème de db4o (utilisez une requête SODA à la place)

Était-ce utile?

La solution

S'il vous plaît vérifier si votre NQ est en effet optimisé ( voir ici ). Sinon, votre meilleur pari est de traduire en SODA vous interroger.

Goran

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top