C# 实体框架不支持从动态查询或临时表生成结果集的存储过程
我已经编写了以下存储过程,运行良好。不过,我想用它做的是将其用作实体数据模型。但是,在实体数据模型中使用它将映射为整数的返回类型和零的值 如何让SP使用DataContext返回实际数据而不是整数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
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必须执行它