นี่เป็นปัญหาเล็กน้อย
มีเอนทิตีที่มีค่าวัตถุ ไม่ใช่ปัญหา. ฉันแทนที่วัตถุค่าสำหรับวัตถุใหม่จากนั้น nhibernate จะแทรกค่าใหม่และกำพร้าของเก่าแล้วลบทิ้ง ตกลงนั่นเป็นปัญหา
ผู้ประกันตนเป็นนิติบุคคลของฉันในโดเมนของฉัน เขามีชุดของที่อยู่ (วัตถุค่า) หนึ่งในที่อยู่คือ MailingAddress เมื่อเราต้องการอัพเดทที่อยู่ทางไปรษณีย์สมมติว่ารหัสไปรษณีย์ผิดตามหลักคำสอนของ Mr. Evans เราต้องแทนที่วัตถุเก่าสำหรับที่อยู่ใหม่เนื่องจากมันไม่เปลี่ยนรูป
แต่เราไม่ต้องการลบแถวเจ้าเนื่องจาก PK ของที่อยู่นั้นเป็น FK ในตาราง MailingHistory ดังนั้นตามหลักคำสอนของนายอีแวนส์เรารู้สึกเมามากที่นี่ เว้นแต่ฉันจะทำให้ที่อยู่ของฉันเป็นรายการดังนั้นฉันไม่จำเป็นต้อง "แทนที่" มันและเพียงอัปเดตสมาชิกรหัสไปรษณีย์เช่นวันที่ดีเก่า ๆ
คุณจะแนะนำอะไรให้ฉันในกรณีนี้ วิธีที่ฉันเห็นมัน ValueObjects จะมีประโยชน์ก็ต่อเมื่อคุณต้องการสรุปแค็ปซูลกลุ่มของคอลัมน์ของตารางฐานข้อมูล (คอมโพเนนต์ใน nhibernate) ทุกอย่างที่มีรหัสการคงอยู่ในฐานข้อมูลจะดีกว่าถ้าจะให้เป็น Entity (ไม่จำเป็นต้องเป็น root รวม) เพื่อให้คุณสามารถอัปเดตสมาชิกโดยไม่ต้องสร้างกราฟวัตถุทั้งหมดใหม่โดยเฉพาะหากเป็นวัตถุที่ซ้อนกันลึก
คุณเห็นด้วยไหม นายอีแวนส์ได้รับอนุญาตให้มีวัตถุค่าที่ไม่แน่นอนหรือไม่? หรือเป็นค่าที่ไม่แน่นอนวัตถุผู้สมัครสำหรับนิติบุคคลหรือไม่
ขอบคุณ