2013-02-10 78 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