NHibernate - ออม
ก่อนที่เราจะเริ่มใช้ NHibernate ได้จริง ๆ เราต้องเข้าใจพื้นฐานที่สร้างขึ้น NHibernate เป็นเทคโนโลยีการคงอยู่ที่มีพื้นฐานมาจากแนวคิดของการทำแผนที่เชิงสัมพันธ์ของวัตถุหรือ ORM
ORM คืออะไร?
Object-Relational Mapping (ORM) คือไฟล์ programming techniqueสำหรับการแปลงข้อมูลระหว่างระบบชนิดที่เข้ากันไม่ได้ในภาษาโปรแกรมเชิงวัตถุ กล่าวอีกนัยหนึ่งก็คือแนวคิดในการแมปวัตถุทางธุรกิจของแอปพลิเคชันกับตารางฐานข้อมูลเชิงสัมพันธ์เพื่อให้สามารถเข้าถึงและอัปเดตข้อมูลได้อย่างง่ายดายผ่านโมเดลวัตถุของแอปพลิเคชัน
ดังที่คุณทราบแล้วว่าฐานข้อมูลเชิงสัมพันธ์เป็นวิธีการที่ดีในการจัดเก็บข้อมูลในขณะที่การเขียนโปรแกรมเชิงวัตถุเป็นแนวทางที่ดีในการสร้างแอปพลิเคชันที่ซับซ้อน
โดยทั่วไปแล้ว NHibernate และ ORM มีความเกี่ยวข้องมากที่สุดกับแอปพลิเคชันที่มีตรรกะทางธุรกิจที่ไม่สำคัญรูปแบบโดเมนและฐานข้อมูลบางประเภท
ด้วย ORM มันเป็นเรื่องง่ายมากที่จะสร้างเลเยอร์การแปลที่สามารถเปลี่ยนวัตถุให้เป็นข้อมูลเชิงสัมพันธ์และกลับมาอีกครั้งได้อย่างง่ายดาย
คำย่อ ORM ยังหมายถึงการสร้างแบบจำลองบทบาทของวัตถุและคำนี้ถูกคิดค้นขึ้นก่อนที่การทำแผนที่วัตถุ / เชิงสัมพันธ์จะมีความเกี่ยวข้อง
อธิบายวิธีการวิเคราะห์ข้อมูลที่ใช้ในการสร้างแบบจำลองฐานข้อมูล
ทำไมออม?
ORM คือ framework ที่ช่วยให้คุณสามารถแมปโลกของวัตถุที่พบในภาษาเชิงวัตถุกับแถวในตารางเชิงสัมพันธ์ที่พบในฐานข้อมูลเชิงสัมพันธ์
เพื่อทำความเข้าใจแนวคิดนี้ลองดูแผนภาพต่อไปนี้
ในแผนภาพด้านบนคุณจะเห็นว่าเรามีตารางที่เรียกว่าพนักงานทางด้านขวาซึ่งมีคอลัมน์ที่มีข้อมูลแต่ละส่วนที่เกี่ยวข้องกับพนักงานแต่ละคน
เรามีคอลัมน์สำหรับรหัสซึ่งระบุพนักงานแต่ละคนโดยไม่ซ้ำกัน
คอลัมน์สำหรับชื่อพนักงานคอลัมน์อื่นสำหรับวันที่เข้าร่วมและสุดท้ายคือคอลัมน์ที่มีอายุของพนักงาน
หากเราต้องการเขียนโค้ดเพื่อเก็บพนักงานใหม่ไว้ในตารางนั้นไม่ใช่เรื่องง่าย
ในแผนภาพด้านบนคุณจะเห็นว่าเรามีวัตถุพนักงานที่มีช่องสำหรับรหัสชื่อวันที่เข้าร่วมและอายุ
หากไม่มี ORM เราจะต้องแปลวัตถุนี้เป็นคำสั่ง SQL ที่แตกต่างกันสองสามรายการซึ่งจะแทรกข้อมูลพนักงานลงในตารางพนักงาน
ดังนั้นการเขียนโค้ดเพื่อสร้าง SQL เพื่อทำสถานการณ์ข้างต้นจึงไม่ใช่เรื่องยาก แต่มันค่อนข้างน่าเบื่อและค่อนข้างง่ายที่จะทำผิด
การใช้ ORM เช่น NHibernate เราสามารถประกาศได้ว่าควรแมปคลาสบางคลาสกับตารางเชิงสัมพันธ์อย่างไรและปล่อยให้ ORM หรือ NHibernate จัดการกับงานที่น่ารังเกียจในการสร้าง SQL เพื่อแทรกอัปเดตลบในข้อมูลการสืบค้นในตารางพนักงานของเรา
สิ่งนี้ช่วยให้เราสามารถเน้นรหัสของเราไปที่การใช้วัตถุและมีการแปลวัตถุเหล่านั้นเป็นตารางเชิงสัมพันธ์โดยอัตโนมัติ
ดังนั้นสิ่งที่ ORM ทำคือช่วยให้เราไม่ต้องแมปวัตถุกับตารางด้วยตนเอง