Sql 实体框架4函数导入存储过程复杂类型不返回列

Sql 实体框架4函数导入存储过程复杂类型不返回列,sql,entity-framework,stored-procedures,complextype,Sql,Entity Framework,Stored Procedures,Complextype,我已经导入了一个SP到实体的数据模型,并将其添加到函数导入中 我可以获取列信息并创建复杂类型GetErrorCheckJobs\u Result 但是,在我将参数添加到sp并尝试更新(刷新、删除和添加回)函数导入后,它无法检索列信息 它说:所选存储过程不返回任何列 我在网上搜索了各种解决方案,并且 SET NOCOUNT OFF SET FMTONLY OFF 在我的SP开始时,但仍然没有运气 这是我的sp: ALTER Procedure [dbo].[s_GetErrorCheckJob

我已经导入了一个SP到实体的数据模型,并将其添加到函数导入中

我可以获取列信息并创建复杂类型
GetErrorCheckJobs\u Result

但是,在我将参数添加到sp并尝试更新(刷新、删除和添加回)函数导入后,它无法检索列信息

它说:
所选存储过程不返回任何列

我在网上搜索了各种解决方案,并且

SET NOCOUNT OFF

SET FMTONLY OFF
在我的SP开始时,但仍然没有运气

这是我的sp:

ALTER Procedure [dbo].[s_GetErrorCheckJobs]
                        @ErrorChecked bit

as
begin
 SET NOCOUNT OFF
 SET FMTONLY OFF


IF OBJECT_ID('tempdb..#TempColumns') IS NOT NULL DROP TABLE #TempColumns


create table #TempColumns 
(
        AssetID int
        ,JobReference varchar(30)
        ,DetailCode varchar(4)

        ,Lamp varchar(255)
        ,pLamp varchar(255)

        ,LuminaireType varchar(255)
        ,pLuminaireType varchar(255)

        ,ColumnStyle varchar(255)
        ,pColumnStyle varchar(255)

        ,ColumnHeight varchar(255)
        ,pColumnHeight varchar(255)

        ,ColumnOutreach varchar(255)
        ,pColumnOutreach varchar(255)
)


//Insert into #TempColumns 
//update #TempColumns 

select 
v.JobId
,v.JobReference
,v.ErrorChecked
,v.WASPAssetId
,v.StreetlightId
,v.DateReceived
,v.DateDueActual
,v.DateCompleted
,v.ActivityCodeIdActual
,v.CrewId
,v.JobCause
,v.Suburb
,v.Address
,v.Problem
,v.SpecialInstructions
,v.Notes

,t.Lamp
        ,t.pLamp

        ,t.LuminaireType 
        ,t.pLuminaireType

        ,t.ColumnStyle 
        ,t.pColumnStyle

        ,t.ColumnHeight 
        ,t.pColumnHeight

        ,t.ColumnOutreach 
        ,t.pColumnOutreach

         from v_errorcheck_jobs v
join #TempColumns t on t.jobreference = v.jobreference and t.assetid = v.waspassetid
where v.ErrorChecked = @ErrorChecked

end

感谢您的帮助复制了sp并将其重命名
整个过程是否再次复制sp并将其重命名
整个过程又进行了一遍

有点晚了,但是你必须在选择“real”之前重新打开无计数,以便它可以使用它来创建投影列表。

有点晚了,但是你必须在选择选择“real”之前重新打开无计数,这样它就可以使用它来创建投影列表。

您是否尝试过取消函数导入并重新添加它?当这种情况正常发生时,唯一的修复方法是进入edmx的xml并删除复杂对象以及函数导入和映射的所有痕迹,我通常从复杂类型开始,在名称上进行查找,然后在函数导入上进行查找。您是否尝试取消函数导入并重新添加它?正常情况下,解决此问题的唯一方法是进入edmx的xml,删除复杂对象以及我们的函数导入和映射的所有痕迹,我通常从复杂类型开始,查找名称,然后查找importI运行的函数。我所发现的最可靠的方法是,将“数据契约”(一个虚假的select语句)放在存储过程的顶部,条件永远不会计算为真,正如这里所提供的:我也遇到了这个问题。我所发现的最可靠的方法是,将“数据契约”(一个虚假的select语句)放在存储过程的顶部,在一个永远不会计算为真的条件下,如下所述: