iT邦幫忙

2021 iThome 鐵人賽

DAY 7
0
Modern Web

從實作學習ASP.NET Core - 30天的購物網站系列 第 7

【從實作學習ASP.NET Core】Day07 | 後台 | 複雜的商品模型

前面花了點時間介紹了 MVC,今天終於要進入正題啦!
我會以一個電玩專賣店的購物網站為主題,並且從後台的管理系統開始做起,內容大概會包含有商品、訂單和會員功能,大多都會圍繞在 CRUD 的應用上。


商品模型

上次已經建立好一個基礎的商品模型,但實際上的商品不會只有名稱價錢而已,我們需要幫 Product 的模型多加幾個欄位,而且以商品類別加以分類,所以也一併把 Category 模型建好,以外鍵建立關聯。更改欄位如下:

    public class Product
    {
        public int Id { get; set; }

        public string Name { get; set; }            //商品名稱
        public string Description { get; set; }     //商品簡介
        public string Content { get; set; }         //商品內容
        public int Price { get; set; }              //商品價格
        public int Stock { get; set; }              //商品庫存
        public byte[] Image { get; set; }           //商品圖片

        public int CategoryId { get; set; }         //類別 (Foreign Key)
        public Category Category { get; set; }
    }

    public class Category
    {
        public int Id { get; set; }
        public string Name { get; set; }            //類別名稱
        public List<Product> Products { get; set; }
    }
    

部屬資料庫到 SQL Sever Express

之前都沒有特別提到資料庫在哪裡,MVC 專案預設的位置會是 LocalDB,我們可以到appsetting.json看看連接字串是連接到哪一個資料庫

"ConnectionStrings": {
    "OnlineShopContext": "Server=(localdb)\\mssqllocaldb;Database=OnlineShopContext-d32dd82d-bdd1-4cb2-9e42-046cc024dc49;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

但我們想要讓資料庫連接到 SQL Sever Express 上,好讓之後可以用管理工具看資料,那就必須取得 SQL Sever Express 的連接字串:

首先打開 Microsoft SQL Server Management Studio,用windows認證 連上 SQL Sever Express

在資料庫右鍵新增資料庫名為OnlineShop


之後回到Visual Studio [ 工具 -> 連接到資料庫 -> 把 Server name 打上 -> 選取資料庫OnlineShop ]


點選連接到的資料庫可以查詢到它的Connection String


複製Connection String到appsetting.json貼上修改

"ConnectionStrings": {
    "OnlineShopContext": "Data Source=DESKTOP-E22K0FS\\SQLEXPRESS;Initial Catalog=OnlineShop;Integrated Security=True"
  }

最後再來移轉資料庫,在Package Manager Console 輸入以下命令:
Add-Migration UpdateProducts
Update-Database
完成後回到SSMS來看

Product 和 Category 的資料表就成功建好了


上一篇
【從實作學習ASP.NET Core】Day06 | 看懂 CRUD 的 Actions
下一篇
【從實作學習ASP.NET Core】Day08 | 後台 | 新增商品類別
系列文
從實作學習ASP.NET Core - 30天的購物網站30

尚未有邦友留言

立即登入留言