문제

이 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 );

보시다시피, 모든 PersistedCommit a Collection<int> ~라고 불리는 FileIDs 그것에 연결합니다 PersistedFileInfo에스. 특정 fileInfo (경로에 의해 식별 됨)의 모든 이전 커밋을 선택하고 싶습니다.

나는 약 800이 있습니다 PersistedFileInfoS와 10 PersistedCommit에스. 쿼리는 약 1.5 초가 소요됩니다. 의무자 Commit-Object는 주어진 두 가지 인수 만 저장합니다. 따라서 여기에는 Timeloss가 없습니다.

내 질문:
이 쿼리를 더 잘 수행하도록 다시 작성할 수 있습니까?

도움이 되었습니까?

해결책

NQ가 실제로 최적화되었는지 확인하십시오 (여기를 봐). 그렇지 않다면 가장 좋은 방법은 이것을 소다 쿼리로 직접 번역하는 것입니다.

고란

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top