วิธีการบันทึก Description ใน Database Column ของ SQL Server ผ่าน EF Core Code First

KwangTung Taesuji
3 min readFeb 1, 2022

--

บทความเดือนกุมภาพันธ์ 2565 วันนี้มาเล่าการใช้งาน ef core code first เกี่ยวกับการบันทึก description ของแต่ละ column ไว้ใน database เพื่ออธิบายความหมายของ column table นั้น ๆ และช่วยให้นำไปใช้งานต่อได้ง่ายขึ้น

ก่อนอื่นมารู้จัก property ที่ชื่อว่า Description ใน SQL Server กันก่อน เมื่อกดเข้าไปใน table ที่สร้างไว้จะสังเกตเห็นว่ามี column และคลิกขวาที่ column จะมีปุ่ม modify

เราสามารถกดเข้าไปดู column propeties ได้ จะเห็นว่ามี property ที่ชื่อว่า Description ตรงจุดนี้เราสามารถแก้ไขได้เลย (แต่มันไม่เท่!)

ใน EF CORE เราสามารถสร้าง Migration ด้วย code first และมี Attribute ที่ชื่อว่า HasComment รองรับอยู่ ซึ่งจริง ๆ แล้วเราก็สามารถระบุคำอธิบายที่ต้องการลงใน HasComment ได้เลย ศึกษา EF Migration เพิ่มเติมได้ที่

https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations

จะดีกว่าไหม? หากเราจะรวบรวมข้อความไว้ที่จุดเดียว แล้วใช้ Descrtipion ที่เป็น Annotation ของ entity properties ใน Entiy Class.cs

ตัวอย่าง ALERT class ที่ถูกสร้างขึ้นไว้ใน class.cs จากนั้นเราเพิ่ม [Description(“ข้อความ”)]

อย่าลืม using System.ComponentModel; ด้วยนะ

วิธีการอัพเดท builder ให้สร้าง method: UpdateBuilder ขึ้นมา เราจะดึงข้อมูล Description มาไว้ใน HasComment

ภายใน method หากมีการเรียกข้าม assembly หรือ dll อื่น ให้ระบุ namespace ลงในตัวแปร filter

ใช้คำสั่ง command: add-migration
หาก add ผิดหรือต้องการลบ ให้ใช้คำสั่ง command: remove-migration

เราจะได้ไฟล์ migration แบบนี้

ใช้คำสั่ง command: update database

เมื่อเรา run migration เสร็จ เราจะได้ description ที่ถูกบันทึกไว้แต่ละ column ไว้ใน database ดังนี้

สุดท้ายนี้ ใน ef core มี entity properites สำหรับใช้ควบคู่กับ entity class สามารถศึกษาเพิ่มเติมได้ที่

--

--