求 linq 动态sql存储过程 exec解决方法

 linq在开发工具中拉出是由动态存储过程执行的存储过程的时候,返回值是一个int类型。
但是我们执行的存储过程返回要是一张表,这时候linq的一些不足就暴露出来了。不能识别动态语言编写的存储过程返回值,怎么能够让它返回一张表,请大家帮帮忙呀,而且我的表名是不确定的,存储过程如下:

IF EXISTS(SELECT Name FROM SYSOBJECTS WHERE Name='sp_SearchMetaData')
DROP PROCEDURE sp_SearchMetaData
GO
CREATE PROCEDURE sp_SearchMetaData
(
@DataBase NVARCHAR(
100),
@DataTable NVARCHAR(
100)
)
AS
DECLARE @Data NVARCHAR(
200)
DECLARE @varColumns NVARCHAR(
300)
SET @Data
=@DataBase+'.dbo.'+@DataTable
EXEC(
'SELECT * FROM '+@Data)
GO

 

繁星点点滴滴
浏览 186回答 1
1回答

慕姐4208626

其实有一种更简单的解决办法, linqtosql还有一个方法,ExceuteCommand 用这个传递查询语句更方便。如果觉得每次都传递“select * from {0}",干脆做一个扩展方法。 总之解决问题就OK。
打开App,查看更多内容
随时随地看视频慕课网APP