2010-11-17 79 views
0

我有一個過程作爲由EF框架(自定義結果的映射類)生成的自定義類返回兩個字段。我可以使用ADO.NET EF LINQ查詢加入proc結果嗎?我收到的錯誤表明不是,但我不確定。EF 4存儲過程與LINQ混合

謝謝。

+2

代碼示例將極大地提高獲得有用答案的機會。 – 2010-11-17 15:58:36

回答

1

不,將結果集從Linq中的存儲過程加入到實體查詢是不可能的。它直接在SQL中也非常困難 - 我可以想象在TSQL中使用OpenQuery的一些方法,但這是非常糟糕的解決方案。

如果你真的需要從存儲過程中的一些LINQ到實體加入結果查詢您需要單獨執行存儲過程和查詢,並使用LINQ to對象加入他們的行列。但請注意,該解決方案將把完整的結果集從兩種操作轉移到您的應用程序服務器,並且聯接將由.NET在內存中執行。

另一種解決方案是將存儲過程重寫爲UDF(TSQL中的用戶定義函數)。在這種情況下,您將無法將函數結果映射到實體中,但您可以將函數的結果與EQL中的其他查詢結合起來。

在這種情況下,最好的解決方案很可能是新的存儲過程執行必要的連接操作。