سؤال

لقد واجهت مشكلة في استعلام 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 PersistedFileInfoS و 10 PersistedCommitس. يستغرق الاستعلام حوالي 1.5 ثانية - وهو في أوفي لفترة طويلة جدًا. محام Commit- Object يحفظ فقط الحجج المعطاة - لذلك لا يوجد timeloss ، هنا.

سؤالي:
هل يمكن إعادة كتابة هذا الاستعلام لأداء أفضل - أم أنه مشكلة DB4O (استخدم استعلام الصودا بدلاً من ذلك)؟

هل كانت مفيدة؟

المحلول

يرجى التحقق مما إذا كان NQ الخاص بك قد تم تحسينه بالفعل (انظر هنا). إذا لم يكن الأمر كذلك ، فإن أفضل رهان لك هو ترجمة هذا إلى استعلام الصودا بنفسك.

غوران

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top