我正在使用DBContext.Database.SqlQuery<entity>
從我的C#代碼存儲庫中執行存儲過程。SQL Server將SP_EXECUTESQL識別爲對象而非過程名稱
它工作正常,但我想知道爲什麼它是執行過程如下圖所示:
exec sp_executesql N'EXEC GetCaseList @CaseStage',N'@CaseStage int',@CaseStage=9
而不是
EXEC GetCaseList @CaseStage = 9
,並有我所有的程序從C#執行喜歡的任何方式這
EXEC GetCaseList @CaseStage = 9
而不是exec sp_executesql N'EXEC GetCaseList @CaseStage',N'@CaseStage int',@CaseStage=9
?
如何讓SQL Server Profiler將對象的過程名稱視爲對象而不是SP_EXECUTESQL?
注意:我想從c#執行程序爲EXEC GetCaseList @CaseStage = 9
,因爲我通過SQL Server Profiler以表格格式保存跟蹤數據。並且在ObjectName列中,它將sp_executesql顯示爲對象而不是過程名稱(GetCaseList)作爲對象。 我只能從c#代碼進行更改。
你能告訴究竟你叫'SqlQuery'方法上面的輸出,例如'sql'字符串,'parameters'(簽名是'SqlQuery(字符串sql,params對象[]參數)') –
@IvanStoev當然。 'return DataContext.Database.SqlQuery(「EXEC GetCaseList @CaseStage」,new SqlParameter(「@ CaseStage」,paramList.CaseStageID))。ToList();' –
Dhwani
@Dhwani,如果從C#中刪除'EXEC'會發生什麼?代碼,如下所示:'返回DataContext.Database.SqlQuery(「GetCaseList」,新的SqlParameter(「@ CaseStage」,paramList.CaseStageID))ToList();'? –