2014-09-22 73 views
0

G'Day everyone。 需要幫助來完成類似問題的答案。不幸的是,由於我沒有足夠的積分,我不能要求最終的解決方案。原來的問題是在這裏: 「[傳遞的SQL Server例外.NET] [1]」將ExecuteSprocAccessor傳遞給.net的SQL Server異常消耗

所以, 問題: try/catch語句在SQL Server 2012中的燕子,我要傳遞的異常或再 - 退回EF 5.0。 只要異常沒有Try/catch,.NET代碼就會毫無問題地得到它。

想辦法解決: 1.對於SQL Server端:我們已經嘗試用THROW/RAISEERROR,提高例外和try/catch塊之外,記錄原來的錯誤並重新把它扔。 2.從.NET SIDE試圖按計劃重載 「ExecuteSprocAccessor」 和改回基本碼 「... SqlDataAdapter的dataadap =新的SqlDataAdapter(命令); dataadap.Fill(DT); 」 毫無效果 3 。另一種選擇 - 猜測 - 是考慮在SQL Server中的某些參數可能會阻止它 - 不知道去哪裏找尚未

解決方案:幫助 前瞻性和建議如何原來設法supressed的TRY/Catch行爲。 謝謝!

回答

0

我們花了一天時間進一步嘗試深入到底,並且意外地找到了臨時解決方案。 由於沒有最初的答覆,我發佈這個解決方案。儘管如此,它更像是一種臨時解決方案。 使用「db.ExecuteDataSet(dbc)」工作正常,提供從Catch塊SQL Server 2012傳遞的異常的相關處理。對我們來說這表明,有一些技巧或問題,我們不會在新版本EL6.0和/或ADO.NET知道尚未

*using (DbCommand dbc = db.GetStoredProcCommand("[Personnel].[uspWebLogin]")) 
 
      { 
 
       db.AddInParameter(dbc, "UserLogin", DbType.String, user.UserLogin); 
 
       db.AddInParameter(dbc, "UserPassword", DbType.String, user.Password); 
 
       DataSet ds = db.ExecuteDataSet(dbc); 
 
       DataTableReader dtr = ds.CreateDataReader(); 
 
       
 
\t \t \t \t // string count just to check theat the core query actualy worked when there is no exception 
 
\t \t \t \t string count = dtr.FieldCount.ToString(); 
 
\t \t \t \t ...... 
 
       return new WebUser(); 
 
      }*

現在的問題是關於如何以優化對象和返回集的最佳映射,而不是編寫「ExecuteSprocAccessor」和「IRowMapper」爲我們所做的代碼堆。

感謝您的閱讀。任何進一步的意見或建議仍然受歡迎。乾杯。