C# 实体框架不支持从动态查询或临时表生成结果集的存储过程

C# 实体框架不支持从动态查询或临时表生成结果集的存储过程,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,我已经编写了以下存储过程,运行良好。不过,我想用它做的是将其用作实体数据模型。但是,在实体数据模型中使用它将映射为整数的返回类型和零的值 如何让SP使用DataContext返回实际数据而不是整数 IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE TYPE = 'P' AND NAME = 'myProc') DROP PROCEDURE myProc; GO CREATE PROCEDURE [dbo].myProc @START DateTime, @ST

我已经编写了以下存储过程,运行良好。不过,我想用它做的是将其用作实体数据模型。但是,在实体数据模型中使用它将映射为整数的返回类型和零的值

如何让SP使用DataContext返回实际数据而不是整数

IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE TYPE = 'P' AND NAME = 'myProc') DROP PROCEDURE myProc;
GO
CREATE PROCEDURE [dbo].myProc
@START DateTime, @STOP DateTime
AS
BEGIN TRY

    CREATE TABLE #Temp (download_Pk int);
    INSERT INTO #Temp 
    SELECT      download_pk FROM t1
    UNION       ALL
    SELECT      download_pk FROM t2;    

    WITH 
    x as 
    (
        SELECT      ID as Caps_Pk,
                    rootID as [Caps_RootId],
                    Case400Series as [Case],
                    SUBSTRING(c1, CHARINDEX('_', c1,1)+1, LEN(c1)) as [Customer],
                    run as Run,                     
                    SUBSTRING(c2, 1, CHARINDEX('_', c2, 1) -1) as [Sample], 
                    SUBSTRING(c2, CHARINDEX('_', c2,1)+1, len(c2)) as [Amplification],
                    projectTitle,
                    DateAdded as [UploadTime],                  
                    UserId as [User]
        FROM        t3 
        WHERE       DateAdded >= @START AND DateAdded <= @STOP AND
                    [User] in (SELECT name FROM ViewUsers WHERE Site = 'abc' AND Role = 'def')
    )   

    SELECT      *
    FROM        x
    WHERE       Caps_Pk NOT IN (Select download_Pk from #Temp)

    DROP TABLE #Temp;

END TRY

BEGIN CATCH
    DROP TABLE #Temp;       

END CATCH

提前谢谢。

您看过这个了吗,这个对我来说非常好,它还有一个可以安装的。您可以在这里找到答案:

EF不支持导入从以下位置生成结果集的存储过程: 动态查询 临时表 原因是要导入过程EF必须执行它