我的网站有点问题。我对一个存储过程做了一个小小的更改。我已经在SSMS中测试了存储过程,然后更新了实体框架以返回我添加的两个新行。
但是现在,当我加载包含存储过程的页面时,页面超时。我觉得真的很奇怪。所以我在我的SQL Server上运行了一个SQL Server事件探查器,真的很惊讶。
通过入口框架执行从MVC3运行dbo.zzz @LogDate='2012-11-13 00:00:00',@UserID=1,@LocationID=76,@CategoryID=NULL - CPU 59469 -读取101693134-持续时间- 60091
从Profiler复制execute语句,并直接在SSMS中运行它,我会得到以下结果:
从SSMS exec dbo.zzz @LogDate='2012-11-13 00:00:00‘运行,@UserID=1,@LocationID=76,@CategoryID=NULL - CPU 47 -读取60185 -持续时间- 151
有没有人知道为什么我从同一个SP得到如此截然不同的结果?
发布于 2012-12-13 21:48:44
算了..。我想通了。Entity Framework并没有真正为最后一个值传递空值。当我将以下行添加到存储过程中时,它开始在网站上工作:
IF(@CategoryID = '')
SET @CategoryID = NULL不确定当SP将其作为空字符串接收时,探查器显示NULL的原因。在代码中,我将其作为null传递。
var dle = context.dEGet(ld,userID,lastLocationID,null).ToList();https://stackoverflow.com/questions/13860360
复制相似问题