Linq to Entities调用存储过程取不到OUTPUT变量值

问题描述:

存储过程部分:

ALTER PROCEDURE dbo.P_PurchaseSearch (@fromdate DATETIME, @todate DATETIME, @notpay INT, @id INT, @custormer INT, @istax INT, @spec INT, @company INT, @itemCount INT =0 OUTPUT, @pageIndex INT =1 OUTPUT, @pageSize INT =20 OUTPUT, @runTime INT =0 OUTPUT ) AS ...

在.edmx模型中导入存储过程,如果有返回结果集,则建立一个复杂类型。

在.cs文件中中调用时:

ObjectParameter itemCount = new ObjectParameter("itemCount"10); 
ObjectParameter pageIndex = new ObjectParameter("pageIndex"1); 
ObjectParameter pageSize = new ObjectParameter("pageSize"20); 
ObjectParameter runTime = new ObjectParameter("runTime"10); 
var _result = dhhs.P_PurchaseSearch(fromdate, todate, notpay ?1 : 0, id, customer, istax, spec, company, itemCount, pageIndex, pageSize, runTime).ToList(); 

调用后发现无法返回OUTPUT值,即传入值不发生改变,调试后发现存储过程无误,然后检查后台代码,发现之前是在页面类controller处初始化:

dhhsdbEntities dhhs =newdhhsdbEntities(); 

修正问题:

在每次action调用前进行实例化就可以了ORZ,感觉跟之前使用的静态方法使不同的用户串话的bug如出一辙。

原文地址:https://www.cnblogs.com/fhmsha/p/2315900.html