2013-02-10 113 views
1

我有這樣的SP,加載相關實體EF 5 Context.Database.SqlQuery

ALTER PROCEDURE [dbo].[GetPageByID] 
(
    @ID INT 
) 
AS 

    SELECT P.* 
      ,A.* 
    FROM Page P 
      LEFT OUTER JOIN [dbo].[Application] A ON P.ApplicationVersion = A.[Version] 
    WHERE P.ID = @ID; 

,我使用此代碼加載到對象,

 return context.Database.SqlQuery<Page>(@"EXEC GetPageByID {0}", new object[] { id }).FirstOrDefault(); 

頁的這隻負荷特性但不加載Page.Application屬性。任何方式告訴EF做到這一點。

回答

2

SqlQuery只能加載您要求的主要實體 - 在您的情況下爲Page。如果你想加載孩子,你也不能使用SqlQuery。帶EDMX的EF5提供了stored procedures with multiple result sets的映射(這意味着您將需要兩個查詢的存儲過程 - 一個用於頁面,另一個用於應用程序)。它尚未被代碼支持。

+0

非常感謝你。 – user960567 2013-02-10 19:07:13