iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
1

本篇同步發文在個人Blog: 一袋.NET要扛幾樓?打造容器化的ASP.NET Core網站!系列文章 - (3) 建立商品服務的Api - 1

 1. 開發環境

  本系列文章所需的開發環境如下:

  • Visual Studio 2019(以下簡稱VS),安裝的模組須包含ASP.NET與.NET Core開發
  • .NET Core SDK 3.1.401 (支援Runtime 3.1.7) ,官網連結: https://dotnet.microsoft.com/download/dotnet-core/3.1
  • Docker,官網連結:https://www.docker.com/get-started
  • Visual Studio Code (可選),如果習慣用VS Code + dotnet CLI可以改用這個
  • SQL Server Management Studio (SSMS) (可選),用來連Docker啟用的SQL Server資料庫
  • 我的作業系統是Windows 10,如果是別的作業系統請自行確認開發套件是否可用

 2. 建立專案

  開啟VS,建立一個空白方案,名稱叫RPGShop。在該方案新增src和下層的Services方案資料夾,並在Services資料夾加入新的ASP.NET Core專案,專案名稱為CatalogApi,選擇專案類型API,先不要用任何HTTPS、Docker與驗證,如圖1。

圖1

  按下建立,會產生預設的WeatherController和相關Model,如圖2。

圖2

 3. 新增Entity

  在CatalogApi專案新增資料夾Domain,新增CatalogType類別,代表商品的類型名稱和獨立的Id:

  

namespace CatalogApi.Domain
{
    public class CatalogType
    {
        public int Id { get; set; }
        public string Type { get; set; }
    }
}

  一樣在資料夾Domain,新增CatalogItem類別,代表商品本身,其中CatalogTypeId和CatalogType是關聯,商品類別與商品是一對多:

namespace CatalogApi.Domain
{
    public class CatalogItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public string PictureFileName { get; set; }
        public int CatalogTypeId { get; set; }
        public CatalogType CatalogType { get; set; }
    }
}

 4. 安裝Entity Framework Core

  在CatalogApi專案右鍵=>選擇[管理NuGet套件],安裝Entity Framework Core的相關套件,包含這些:

  • Microsoft.EntityFrameworkCore  , 版本 3.1.7
  • Microsoft.EntityFrameworkCore.Design  , 版本 3.1.7
  • Microsoft.EntityFrameworkCore.Relational  , 版本 3.1.7
  • Microsoft.EntityFrameworkCore.SqlServer  , 版本 3.1.7

------------------------------------------------------

  先寫到這邊,下章開始使用Entity Framework Core建立DbContext、Docker啟用SQL Server,啟用Migrations/Update database、載入初始化資料等。


上一篇
[Day 2] 傳統單一架構 VS 微服務架構
下一篇
[Day 4] 建立商品服務的Api - 2
系列文
一袋.NET要扛幾樓?打造容器化的ASP.NET Core網站!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言