2014-08-30 83 views
4

我想打電話給使用實體框架6.我上輸出消息的錯誤的存儲過程。型「System.Data.Entity.Core.EntityCommandExecutionException」的第一次機會異常出現在EntityFramework.SqlServer.dll

型「System.Data.Entity.Core.EntityCommandExecutionException」的第一次機會異常出現在EntityFramework.SqlServer.dll

using (var context = new PartnerPortalEntities2()) 
{ 
    var outputParameter = new ObjectParameter("result", typeof(string)); 
    var spresults = context.assignRoles_CreateAccountAndContacts(user.Id, role, user.AccountId, user.AccountName, user.ContactId, user.FirstName, user.LastName, outputParameter); 
    // Control never comes after the above line 
    if(spresults.Equals("1")) 
    { 
     //Do something 
    } 
    else 
    { 
     // Do something 
    } 

    } 

當我做了調試,控制轉到行在輸出窗口出現上述錯誤並且調試程序停止之後調用存儲過程的地方,它永遠不會進入if語句。

我已經運行在SQLServer中的存儲過程,它工作正常那裏。任何想法可能是錯誤。我通過從數據庫生成代碼來構建上下文。

+2

把存儲過程在一個try/catch並期待在例外。 – Shoe 2014-08-30 19:45:13

+0

謝謝@Shoe,try catch幫我解決了問題所在。我是路過的輸出變量在我的SP – Prady 2014-09-01 10:14:51

+0

如果你已經解決了你的問題一定要與解決方案,你把實現它相關的措施來解決。 – Shoe 2014-09-04 04:17:49

回答

1

正如@Shoe所建議的那樣,我將存儲過程的調用嵌入到try catch塊中,該塊捕獲異常並顯示確切的錯誤。

它原來是,我是不是經過精確變量作爲輸出參數。將結果更改爲結果,因爲存儲過程中定義的變量爲結果

var outputParameter = new ObjectParameter("result", typeof(string)); 
0

我剛剛發生同樣的錯誤,我設法修復它!

此錯誤可能是由於其他原因造成的,但造成此錯誤的原因是SQL服務器未配置爲接受來自我的調試工作站的傳輸 - 我必須在Sql服務器設置中配置我的計算機的IP然後它完美地工作。

希望它有幫助。

+0

其他人試試這個解決方案? – Sizons 2015-07-28 09:20:46

相關問題