首页 新闻 会员 周边 捐助

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

0
悬赏园豆:10 [已解决问题] 解决于 2010-09-30 17:01

 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

 

天神一的主页 天神一 | 小虾三级 | 园豆:845
提问于:2010-09-28 15:04
< >
分享
最佳答案
0

其实有一种更简单的解决办法,

linqtosql还有一个方法,ExceuteCommand

用这个传递查询语句更方便。如果觉得每次都传递“select * from {0}",干脆做一个扩展方法。

总之解决问题就OK。

收获园豆:10
mywork | 菜鸟二级 |园豆:475 | 2010-09-28 20:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册