2008-12-04 61 views
0

我目前正在考慮我的數據對象的存儲庫模式,其中多個IQueryable<>實例可以註冊爲數據源,但似乎並不容易讓它運行。是否可以在不同的LINQ提供者之上進行LINQ查詢?

用LINQ運行一個簡單的LINQ查詢到實體和LINQ To Objects不起作用。你認爲這通常是可能的嗎?也許唯一的解決辦法是寫一個指定的提供者?

在我的存儲庫中,我在所有IQueryable實例上調用.Union<>(),然後最終使用LINQ查詢得到的單個IQueryable。結果是一個IQueryable被完全忽略。

回答

0

好吧,我在列表上使用LINQ查詢,收集了大量的東西。我在SQL表上使用非常類似的查詢。我從來沒有任何問題。我聽說有人在LINQ to objects上使用LINQ查詢時遇到了一些問題,但我認爲他們通常被認爲是LINQ錯誤,而不是LINQ to objects,LINQ to XML和LINQ to SQL工作方式中的設計差異。在安裝VS 2008 SP1之前的幾天中,我確實遇到過一些LINQ問題,但他們已經解決了。

只要您考慮到查詢返回的內容,它應該可以正常工作。

-2

我絕對沒有文檔來支持這一行動,但我不記得在約說,正在建成的LINQ to SQL優化執行操作時會試圖消除多次調用數據庫中的預發佈日一些討論Linq to SQL IQueryable <>對象和Linq to Object IQueryable <>對象。這與IQueryable接口的整體架構相結合,使我認爲在不同的提供者上應該沒有問題。但是,似乎可能的是,交互的能力可能基於提供者的具體實現。

我知道我LINQ的組合操作沒有問題,以對象和LINQ to XML集合。

+0

對象的LINQ不使用IQueryable。我不確定你在說什麼。 – 2008-12-05 00:12:51