linq在开发工具中拉出是由动态存储过程执行的存储过程的时候,返回值是一个int类型。但是我们执行的存储过程返回要是一张表,这时候linq的一些不足就暴露出来了。不能识别动态语言编写的存储过程返回值,怎么能够让它返回一张表,请大家帮帮忙呀,而且我的表名是不确定的,存储过程如下:
IF EXISTS(SELECT Name FROM SYSOBJECTS WHERE Name='sp_SearchMetaData') DROP PROCEDURE sp_SearchMetaDataGOCREATE PROCEDURE sp_SearchMetaData(@DataBase NVARCHAR(100),@DataTable NVARCHAR(100))ASDECLARE @Data NVARCHAR(200)DECLARE @varColumns NVARCHAR(300)SET @Data=@DataBase+'.dbo.'+@DataTableEXEC('SELECT * FROM '+@Data)GO
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
其实有一种更简单的解决办法,
linqtosql还有一个方法,ExceuteCommand
用这个传递查询语句更方便。如果觉得每次都传递“select * from {0}",干脆做一个扩展方法。
总之解决问题就OK。
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消