实体框架4:所选存储过程不返回任何列

Ton*_*ony 7 t-sql stored-procedures entity-framework-4

在我的SP中,我混合了静态SQL和动态SQL:

declare @result table
(
 RowNum bigint,
 Id_and_Title varchar(max),
 DaysLeft int,
 cat_id int
);
Run Code Online (Sandbox Code Playgroud)

然后,在动态SQL中,我将结果插入到该表中:

DECLARE @TSQL NVARCHAR(max);
SET @TSQL = ......
Run Code Online (Sandbox Code Playgroud)

(我使用print @TSQL所以我确定查询没问题)

insert into @result
EXECUTE sp_executesql @TSQL

select * from @result
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在VS 2010 Ultimate中导入taht SP时,我会看到标题中提到的消息.是什么导致的?很多次我发生了这个错误,但我仍然不知道是什么原因引起的

Aid*_*ack 31

尝试将此行添加到存储过程的开头:
SET FMTONLY OFF
您可以在导入完成后将其删除.

它在本文中提到(有点长篇大论)并且它对我有用,虽然我最终回到ADO.NET的时候我依赖Stored Procedures.请记住,如果您的列根据动态SQL而发生变化,您的实体模型将会中断.