问题描述
最近在使用linq的executequery方法执行存储过程的时候遇到个问题。存储过程是带有output参数的,在使用lamda语句的时候传入的参数无法获取到需要output的参数新值假设存储过程如下ALTERPROC[dbo].[A]@IDint@COuntINTOUTPUTASSET@COunt=selectcount(*)fromtableselect*fromtablewhereid=@idlamda语句如下vara=1;varb=0;datacotext.executequery<T>("execA@id={0},@Count={1},a,b).ToList();这样无法获取b的output值,如果加上ref则是报类型转化错误,求解!
解决方案
解决方案二:
为什么要用executequery来执行存储过程?为何不先映射存储过程到dbmloredmx文件内再通过db.存储过程名来调用?
解决方案三:
因为存储过程中的语句是拼接,linq直接执行拼接的存储语句只会返回影响数值,这样无法实现我要的效果
解决方案四:
用映射就行了
解决方案五:
楼主有没有搞定,我现在也遇到这个问题了。映射根本不行,老是返回int。
时间: 2024-12-18 21:22:59