0

我的網站有問題。我對存儲過程做了一些小改動。我測試了SSMS中的存儲過程,然後更新了實體框架以返回我添加的兩個新行。實體框架 - MVC 3超時問題

但現在當我加載包含存儲過程的頁面時,頁面超時。我認爲這真的很奇怪。所以我在SQL Server上運行了一個SQL Server Profiler,並且非常驚訝。

從MVC 3通過Entry Framework運行exec [dbo]。[zzz] @ LogDate ='2012-11-13 00:00:00',@ UserID = 1,@ LocationID = 76,@ CategoryID = NULL - CPU 59469 - 讀取101693134-時間 - 60091

複製從探查的執行語句,並直接在SSMS運行它,我得到這樣的結果:從SSMS

運行執行[DBO] [ZZZ] @ LOGDATE = '2012-11-13 00:00:00',@ UserID = 1,@ LocationID = 76,@ CategoryID = NULL - CPU 47 - 讀取60185 - 持續時間 - 151

任何人有任何想法,爲什麼我得到這種完全不同的結果來自同一個SP?

回答

0

沒關係......想通了。實體框架,沒有真正傳遞一個空的最後一個值。當我加入以下行存儲過程,它開始在網站上的工作:

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

不知道爲什麼探查中的一空,當SP正在接受它作爲一個空字符串。在代碼中,我將它作爲null傳遞。

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

您還可以將它作爲'DBNull.Value'傳遞給SQL Server中的NULL。 – dom

+0

謝謝dombenoit,我也會試一試。 – pangotek