สร้าง Web Application เชื่อมกับ SQL Server Database ด้วย ASP.NET Core MVC แบบ Code First โดยใช้ Visual Studio for Mac บน MacOS

Line
Facebook
Twitter
Google

บทความนี้เป็นบทความต่อเนื่องจาก [10 ขั้นตอน] สร้าง Web Application เชื่อมกับ SQLite DB ด้วย ASP.NET Core MVC แบบ Model First โดยใช้ Visual Studio for Mac และ [10 ขั้นตอน] สร้าง Web Application เชื่อมกับ SQL Server Database ด้วย ASP.NET Core MVC แบบ Model First

เราจะสมมติสถานการณ์ว่า เราได้ทำ Web Application ของเราเสร็จเรียบร้อยแล้ว และเราก็ต้องการเอา Web Application ที่เราสร้างขึ้นมานี้ ไปติดตั้งบน Server เพื่อใช้งานจริงในแบบ Production ซึ่งในความเป็นจริง คงไม่มีใครใช้ SQLite เป็น Database สำหรับจัดเก็บข้อมูล และ Microsoft เอง ก็แนะนำให้ใช้เฉพาะในขั้นตอนการ Development เท่านั้น ดังนั้น เราจึงจำเป็นต้องมาปรับปรุง Web Application ก่อนการนำขึ้นเป็น Production ต่อไป ซึ่งแนวทางที่ Microsoft แนะนำคือ ให้สร้าง Environment สำหรับ Development กับ Production ไว้ และเรียกใช้ผ่าน Configuration แต่ในบทความนี้ จะเป็นการเปลี่ยนในระดับ Configuration เลย ไม่ใช้ Environment Variable นะครับ

เพื่อให้สั้นกระชับ ในบทความนี้จะใช้โปรเจคเดิมที่ได้สร้างไว้จากบทความ [10 ขั้นตอน] สร้าง Web Application เชื่อมกับ SQLite DB ด้วย ASP.NET Core MVC แบบ Model First โดยใช้ Visual Studio for Mac โดยจะนำโปรเจคนี้มาปรับปรุงโค้ดเฉพาะบางส่วนที่เกี่ยวข้องเท่านั้น

เริ่มกันที่ Startup.cs แก้ไขจากเดิม

options.UseSqlite

เป็น

options.UseSqlServer

ต่อไปเป็นไฟล์ appsettings.json แก้ไข Connection String จาก

"MvcMovieContext": "Data Source=MvcMovie.db"

เป็น

"ConnectionStrings": {
    "MvcMovieContext": "Data Source=[IPADDRESS];Initial Catalog=[DBNAME];Persist Security Info=True;User ID=[USERNAME];Password=[PASSWORD];Max Pool Size=20000;"
}

จากนั้น เมื่อเราเปลี่ยน Database Connection ก็หมายความว่า Database ปลายทางยังไม่ถูก Migration จาก Database Context ในโปรเจคของเรา จึงยังไม่มี Database และ Table ตามที่กำหนดไว้ ดังนั้น ขั้นตอนต่อไปเราต้องทำการ Migration ก่อน โดยขั้นตอนการ Migration จะทำเหมือนกันกับบทความ [10 ขั้นตอน] สร้าง Web Application เชื่อมกับ SQLite DB ด้วย ASP.NET Core MVC แบบ Model First โดยใช้ Visual Studio for Mac : 8. ทำการ Migration เพื่อสร้าง Database และ Table ตาม Model ที่กำหนด เลย แต่เนื่องจากเรามี Migration เดิมที่เป็น SQLite Database อยู่แล้ว เราจึงจำเป็นต้องลบ Migration เดิม ออกไปก่อน เพราะเป็น Migration เริ่มต้น ซึ่งขึ้นอยู่กับตัว Database ด้วย โดยใช้คำสั่ง

dotnet ef migrations remove

dotnet ef migrations remove เป็นคำสั่งสำหรับลบ Migration ตัวล่าสุดทิ้งไป

เราจำเป็นต้องสร้าง Migration ใหม่ แม้เราจะมี Migration เดิมอยู่แล้ว เนื่องจาก Migration เดิมใช้ SQLite Database แต่เราต้องการเปลี่ยนไปใช้ SQL Server Database ซึ่งมีความแตกต่างกันใน Code ของการ Migration (Database Annotation) นั่นเอง

จากนั้น ทำการ Migration โดยใช้ .NET Core CLI ตามคำสั่งดังนี้

dotnet ef migrations add InitialCreateSqlServerDB
dotnet ef database update

เมื่อรันคำสั่งสำหรับ Migration ครบแล้ว จะเห็นว่า Database ก็จะมีโครงสร้างตามโมเดลที่กำหนดไว้

และเมื่อลงรันโปรเจคดู ก็จะพบว่า Web Application ของเรายังใช้งานได้ตามปกติ และได้เชื่อมกับ Database Sql Server แล้ว

เมื่อทำได้เช่นนี้ เราก็สามารถใช้ Visual Studio 2019 for Mac บน MocOS ของเราทำงานร่วมกับ SQL Server Database ได้แล้ว

Line
Facebook
Twitter
Google
การติดตั้งและใช้งาน Datatables ร่วมกับ Angular
[ตอนที่ 16] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 การทำ Sorting
[ตอนที่ 15] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 การทำ Filtering
[ตอนที่ 14] Social App Workshop ด้วย ASP.NET Core 3 กับ Angular 9 การใช้งาน Paging
เตรียม Atom สำหรับ React Native #3
เตรียม Visual Studio Code สำหรับ React Native #2
การติดตั้ง React Native บน macOs #1
การกำหนดค่า TF_MIN_GPU_MULTIPROCESSOR_COUNT เพื่อให้ TensorFlow ใช้งาน GPU ทุกตัว
ติดตั้ง Ubuntu 17.04 ใช้งานร่วมกับ Windows 10
การติดตั้ง TensorFlow & Caffe บน Ubuntu 16.04