2-3.ASP.NET Core Web API 入門教學 - 使用資料庫物件取得資料表內容

ASP.NET Core Web API 入門教學

影片講解(有字幕)


上一篇我們已經建立好了資料庫的相關連線設定,那接下來就要來示範如何從資料庫取出資料。

那可以先到SQL Server物件總管理看我準備的資料庫有5筆資料。

接著我們到Controllers資料夾下創一個新的TodoController。

看到上半部的地方

namespace Todo.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class TodoController : ControllerBase
    {
        private readonly TodoContext _todoContext;
        // GET: api/<TodoController>
        public TodoController(TodoContext todoContext)
        {
            _todoContext = todoContext;
        }

        // GET: api/<TodoController>
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
     }
}

我們加入一個private readonly全域變數,其中TodoContext是你創的DB物件類別名稱,_todoContext則是變數名稱,這邊習慣小寫然後加一個底線,你想其他寫法也行。

然後在建構子的地方public TodoController(TodoContext todoContext)會得到一個參數,TodoContext todoContext,這就是Core裡面的DI注入取用類別的方式,在Startup.cs裡面所注入的服務,都是用這個方法去取得使用的,後面會再詳細介紹什麼是DI相依性注入。

接著我們在建構子裡面就將全域變數_todoContext等於todoContext即可。

那使用DI的架構能為我們帶來一些維護上和生命週期管理的好處,在今天的範例中,如果有寫過之前非DI的架構的人,可以知道在new出一個新的資料庫物件後,還要自行open、close、Dispose,否則就有可能連線數或資源耗盡,那這些程式碼不僅礙眼也一值重複出現在你的程式片段裡。

但今天在Core裡面使用DI後,它其中一個好處就是幫你管理這個物件的生命週期,時間到了,資源也跟著釋放,所以你只要專注在你的商業邏輯上,再也不用人工控制這個物件的狀態管裡。

那接著我們就要開始使用這個資料庫物件進行資料讀取了,讀取方式如下。

[HttpGet]
public IEnumerable<TodoList> Get()
{
    return _todoContext.TodoLists;
}

在我們Get()的方法中,我們改回傳一個_todoContext.TodoLists,然後上面的回傳類別改成TodoList,這樣就可以從資料庫中取得TodoList資料表中所有的資料。

按下啟動不偵錯,並且在網址打上/api/todo,就會出現結果,如下圖。

就這樣,我們就能輕鬆的就從資料庫中取回資料,並且返回client端,一支返回todolist資料表所有內容的Web API就完成了,那今天的示範就簡單先介紹到這邊。想要聽多一些廢話的可以看影片

新手分享學習成果,若有錯誤,煩請告知修正,感謝🙏

範例下載:下載




Copyright © 凱哥寫程式 2022 | Powered by TalllKai ❤