i4o開源專案增強LINQ索引功能

2021-09-16 19:08:24 字數 545 閱讀 2104

當乙個linq表示式直接訪問資料庫時,dlinq provider支援所有資料庫索引。但是linq不僅會訪問資料庫,它還可能訪問xml或者更簡單的物件集合等。對於稍大些的查詢,索引的缺失可能成為乙個問題。

\ 在執行時情況下,當你呼叫where和join等擴充套件方法時,i4o就開始起作用。它會評估表示式樹,如果合適,就用乙個索引查詢(index lookup)替代for-each迴圈。

\ 這個技術目前只在使用大型的記憶體物件集合的情況下才可用。在測試乙個有著100萬物件的集合時,i4o將速度提高了差不多兩個數量級。

\ 作為乙個新的專案,它還有很多的問題需要解決。有些比較簡單,不久就能被實現,比如增加從集合中刪除物件的支援或者支援bindinglist等。但有些比較困難,比如在乙個已被索引的集合裡如何處理物件的更新。物件本身不知道它們在集合中,要給每乙個被索引的類增加inotifypropertychanged支援是很無聊的,而且看上去用一些面向方面程式設計(aop)技術去注入(inject)必要的事件鉤子可能是不可能實現的。

\檢視英文原文:indexes for linq

i4o開源專案增強LINQ索引功能

當乙個linq表示式直接訪問資料庫時,dlinq provider支援所有資料庫索引。但是linq不僅會訪問資料庫,它還可能訪問xml或者更簡單的物件集合等。對於稍大些的查詢,索引的缺失可能成為乙個問題。在執行時情況下,當你呼叫where和join等擴充套件方法時,i4o就開始起作用。它會評估表示式...

i4o開源專案增強LINQ索引功能

當乙個linq表示式直接訪問資料庫時,dlinq provider支援所有資料庫索引。但是linq不僅會訪問資料庫,它還可能訪問xml或者更簡單的物件集合等。對於稍大些的查詢,索引的缺失可能成為乙個問題。在執行時情況下,當你呼叫where和join等擴充套件方法時,i4o就開始起作用。它會評估表示式...

i4o開源專案增強LINQ索引功能

當乙個linq表示式直接訪問資料庫時,dlinq provider支援所有資料庫索引。但是linq不僅會訪問資料庫,它還可能訪問xml或者更簡單的物件集合等。對於稍大些的查詢,索引的缺失可能成為乙個問題。在執行時情況下,當你呼叫where和join等擴充套件方法時,i4o就開始起作用。它會評估表示式...