ORM POCOs แทนที่โดเมนหรือไม่


10

นี่ค่อนข้างคล้ายกับคำถามนี้แต่กว้างขึ้น

โดยทั่วไปแล้วด้วย ORMs เช่น EF 4.1 ที่รองรับ POCO ตอนนี้มันสมเหตุสมผลหรือไม่ที่จะให้หน่วยงานโดเมนของคุณเป็นวัตถุที่ยังคงอยู่ในฐานข้อมูลของคุณ

ด้วย ORM ที่เก่ากว่าเช่น EF 4 หรือ Linq-to-SQL วัตถุ "ฐานข้อมูล" ของคุณจะถูกสร้างขึ้นโดยอัตโนมัติและเชื่อมต่อกับฐานข้อมูลของคุณอย่างแน่นหนาและดังนั้นสำหรับแอปพลิเคชันที่ไม่น่าสนใจ นำไปทำงาน

เป็นความคิดที่มี ORM ที่ใหม่กว่าเพียงแค่สร้างเอนทิตีโดเมนที่มีประสิทธิภาพแล้วมี data-layer ที่ให้การแม็พระหว่างเอนทิตีโดเมนดังกล่าวกับ DBMS ของคุณหรือไม่

ในการเขียนที่ฉันรู้สึกว่านี่เป็นเป้าหมายเสมอแต่ไม่สามารถทำได้อย่างง่ายดายด้วยเครื่องมือที่มีอยู่อย่างน้อยไม่ใช่ในโลก NET


EFv4 ยังรองรับการจับคู่กับ POCO และการเขียนด้วยมือ
Ladislav Mrnka

คำตอบ:


9

ฉันคิดว่าเป้าหมายทั่วไปของ ORM คือฐานข้อมูลนั้นถูกแมปโดยตรงกับวัตถุในโดเมนซึ่งเป็นแนวคิดของ POCO ดังนั้นคำตอบสำหรับคำถามของคุณคือใช่ เมื่อถึงตอนนี้ EF ก็สามารถทำแผนที่กับ POCO ได้แล้วจึงเป็นเรื่องดีที่จะพิจารณา POCO เหล่านั้นเป็นโดเมน สำหรับ ORM อื่น ๆ เช่น NHibernate สิ่งนี้สามารถเกิดขึ้นได้ชั่วขณะหนึ่งและฉันเชื่อว่าผู้คนมักจะใช้มันเช่นนี้

แต่เป้าหมายของการให้เอนทิตีโดเมนนี้ถูกแมปโดยตรงกับฐานข้อมูลนั้นไม่สามารถทำได้ มีบางกรณีที่จำเป็นต้องมีการแปลที่สำคัญระหว่างฐานข้อมูลและโมเดลโดเมน ORM อาจไม่สามารถทำการแปลได้ ในกรณีนี้คุณอาจต้องการเลเยอร์ POCO ระดับกลางที่แมปกับ ORM ไปยังฐานข้อมูลจากนั้นเลเยอร์การแปลที่เปลี่ยนเป็นเลเยอร์ POCOs และกลับมาอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.