我遇到了这个 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其连接到其PersistedFileInfos 的调用。我想选择特定 fileInfo (由其路径标识)的所有先前提交。
我有大约 800PersistedFileInfo秒和 10PersistedCommit秒。查询大约需要 1.5 秒——我认为这太长了。-object的构造Commit函数只保存两个给定的参数 - 所以这里没有时间损失。
我的问题:
能否重写此查询以更好地执行 - 还是 db4o 问题(改用 SODA 查询)?