Archive for the ‘mvc’ Category

 

การแสดงข้อมูลจาก Entity หรือตัวแทนจากตารางในฐานข้อมูลเดียวเป็นเรื่องปกติ

แต่หากต้องแสดงข้อมูลจาก entity อื่นที่มีความสัมพันธ์กันต้องเพิ่มอะไรลงไปนิดหน่อย

 

จากตอนที่แล้วผมสร้างแอพพลิเคชั่นจากฐานข้อมูลที่มีเดิมอยู่แล้ว

แล้วมาสร้าง entity datamodel แล้วค่อยมาสร้าง class ที่ทำงานทีหลัง

ไม่ใช่สร้างแบบ poco คือสร้างโค้ดก่อนแล้วไปเจนเนเรทฐานข้อมูล ผมคิดว่าอาจจะไม่เขียนเพราะ ตย ในเว็บอื่นๆมีมากพอแล้ว

 

วัตถุประสงค์

ต้องการแสดงรายชื่อนักเรียน

ต้องการคลิกที่ชื่อแล้วแสดงรายวิชา + เกรดที่ได้ของนักเรียน

 

นี่คือ edm ของระบบ

image

 

1. เพิ่ม Controller ลงไปชื่อ StudentController กำหนดค่า

image

ที่ช่องเทมเพลต กำหนดให้สร้าง crude

โมเดลให้เลือกชี้ไปที่คลาสที่สร้างขึ้นจากตอนที่แล้ว

และcontext เลือก schoolentity ก้ได้จากการสร้างตอนที่แล้วเช่นกัน

แล้ว add ลงไป

 

2.แก้โค้ดที่ StudentController เมทอส Details ดังนี้

image

จะเห็นว่าผมแก้โค้ดให้มี include เอา entity ที่ติดต่อโดยตรงเข้าไปก่อน

แล้วไปเรียก select เอา entity ที่ติดต่อถัดไปเข้ามา

 

3.เปิด view  detail ของ student

image

 

4. ภายใน tag ของ fieldset ให้เพิมตารางแสดงรายการวิชาและเกรดที่ได้เข้าไปด้วยการวนลูปดังนี้

image

 

เมื่อทดลองรันจะได้ดังนี้

 

image

เมื่อคลิกที่ detail ของ นร สักคน

image

จะได้รายวิชาที่ลงเรียนและเกรด(หากมี)

 

จบแล้วครับ ไม่เข้าใจเหมือนกันว่าทำไมทำตาม tutorial แล้วมีปัญหามาตลอด

หรือผมโง่เกินไปก็ไม่ทราบได้ หากใครฉลาดๆโปรดเข้ามาให้คำสอนด้วยครับ

 

การสร้าง Model จากฐานข้อมูลที่มีอยู่เรียกว่า database first

1.เมื่อเราได้สร้างฐานข้อมูลแล้ว สร้างตารางและความสัมพันธ์เอาไว้ก่อนแล้ว

image

 

2.เพื่อความแน่ใจให้ดูใน web.config ว่ามี connection string ที่เชื่อมต่อระบบของเราเข้ากับ database ที่เราได้สร้างเอาไว้หรือยังหากยังให้กำหนดค่าดังนี้

image

 

3.ให้สร้าง Entity Data Model ขึ้นมา ที่โฟลเดอร์ Model ให้เพิ่ม Entity data model ลงไป

ตั้งชื่อ SchoolModel

4.เลือก Generate จาก Database

image

 

5.ที่ connection เลือกไปยัง database ที่เราได้สร้างเอาไว้

image

 

6.ด้านล่างให้บันทึก entity connection ลง web.config

image

 

เลือกตารางที่ใช้

image

 

และตั้งชื่อว่า SchoolModel

image

 

6. เลือก build project แล้วสร้าง class จาก edm ด้วยการคลิกขวาในหน้าการออกแบบ edm

image

 

7. เลือก code แล้วเลือก Self tracking

image

 

8. เราจะได้คลาสตามที่ edm ได้สร้างเอาไว้

image

 

จบแล้วครับ