2015-12-24 60 views
0

是否可以在沒有實體框架的情況下使用Web API並從Web API控制器調用存儲過程?如何通過Web API調用存儲過程

+0

你當然可以使用原始的ADO.NET SqlConnection, - 或者如果你想真的**自己編寫一大堆愚蠢的無聊代碼,你也可以自己做結果集中的無類型行和列到你自己的對象 - 你決定...... –

+0

@ marc_s感謝您的回覆,您的意思是使用Dapper將數據集轉換爲自定義對象?這樣做是否合理?它是否對應用程序的性能產生不良影響? –

+1

因爲一切 - 進入一個更高的抽象層次(類型化對象而不是無類型的行/列)**會產生性能成本 - 另一方面,使用對象只是**更好更好**和更多對於開發人員來說是富有成效的......但Dapper.NET是最好的微型ORM之一 - 它實際上爲這個網站提供支持(Stackoverflow) –

回答

3

這是可能的,如下面的示例:

 public async Task<IHttpActionResult> Get() 
     { 
      DataTable dt = new DataTable();    

      using (SqlConnection sqlConnection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) 
      { 
       await sqlConnection.OpenAsync(); 

       using (SqlCommand cmd = new SqlCommand("sp_GetData", sqlConnection)) 
       { 
        cmd.CommandType = System.Data.CommandType.StoredProcedure; 

        using (SqlDataReader reader = await cmd.ExecuteReaderAsync()) 
        { 
         dt.Load(reader);       
        }      
       } 
      } 

      if ((dt == null) || (dt.Rows.Count == 0)) 
      { 
       return NotFound(); 
      } 

      return Ok(dt); 
     } 

希望它能幫助!

+0

此代碼在aspp.net mvc中使用,我希望調用存儲通過Web API在asp.net web表單中的過程 –

+0

這段代碼在我的項目中是Asp.Net Web API 2 – BNK

相關問題