У меня проблема с этим Linq запрос:Улучшение db4o 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
содержит Collection<int>
под названием FileIDs
, которая соединяет его с его PersistedFileInfo
с. Я хочу выбрать все предыдущие фиксации определенного fileInfo (который идентифицируется по его пути).
У меня около 800 PersistedFileInfo
s и 10 PersistedCommit
s. Запрос занимает около 1,5 секунд - это слишком долго. Конструирующий объект Commit
-объект сохраняет только два заданных аргумента - так что здесь нет timeloss.
Мой вопрос:
Может ли этот запрос быть переписан для выполнения лучше - или это проблема с db4o (вместо этого используется запрос SODA)?