【问题标题】:Entity Framework - MVC 3 Timeout Issue实体框架 - MVC 3 超时问题
【发布时间】:2012-12-13 12:58:01
【问题描述】:

我的网站有问题。我对存储过程做了一个小改动。我已经在 SSMS 中测试了存储过程,然后更新了我的实体框架以返回我添加的两个新行。

但是现在当我加载包含存储过程的页面时,页面超时。我觉得这真的很奇怪。所以我在我的 SQL Server 上运行了一个 SQL Server Profiler,我真的很惊讶。

通过 Entry Framework exec [dbo].[zzz] 从 MVC 3 运行 @LogDate='2012-11-13 00:00:00',@UserID=1,@LocationID=76,@CategoryID=NULL - CPU 59469 - 读取 101693134- 持续时间 - 60091

从 Profiler 复制执行语句并直接在 SSMS 中运行,我得到以下结果:

从 SSMS 运行 exec [dbo].[zzz] @LogDate='2012-11-13 00:00:00',@UserID=1,@LocationID=76,@CategoryID=NULL - CPU 47 - 读取 60185 - 持续时间 - 151

任何人知道为什么我从同一个 SP 中得到如此截然不同的结果?

【问题讨论】:

    标签: sql-server asp.net-mvc-3 entity-framework visual-studio-2012


    【解决方案1】:

    没关系...想通了。实体框架,并没有真正为最后一个值传递空值。当我在存储过程中添加以下行时,它开始在网站上工作:

    IF(@CategoryID = '')
        SET @CategoryID = NULL
    

    当 SP 将它作为空字符串接收时,不确定为什么 Profiler 显示 NULL。在代码中,我将它作为 null 传递。

    var dle = context.dEGet(ld,userID,lastLocationID,null).ToList();
    

    【讨论】:

    • 您也可以将其传递为DBNull.Value 以在 SQL Server 中获取 NULL。
    • 谢谢dombenoit,我也试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多