ฉันมีรุ่นที่ดูเหมือน:
class Case
{
public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
public virtual DateTime LastModified { get; set; }
}
class CaseToCaseTag
{
public virtual Case Left { get; set; }
}
เมื่อตรวจสอบความสัมพันธ์นี้กับ envers ฉันประสบปัญหากับการติดตามคุณสมบัติที่แก้ไขเมื่อลบค่าออกจากชุด
หาก สิ่งเดียวที่ สิ่งที่ฉันเปลี่ยนแปลงใน case-entity เมื่อลบค่าออกจากชุดคือ "set-removal" จากนั้นจะเข้ารหัสการติดตามอย่างถูกต้องว่าคุณสมบัติ CaseTags
ได้รับการแก้ไขในการแก้ไข อย่างไรก็ตาม หากฉันเปลี่ยนคุณสมบัติอื่นๆ เช่น คุณสมบัติ LastModified
ฉันจะไม่ได้รับการตั้งค่าแฟล็ก CaseTags_MOD อย่างถูกต้อง
ฉันได้ติดตามสิ่งนี้ (ฉันคิดว่า) ไปยังวิธี AuditProcess.AddWorkUnit
เมื่อฉันลบออกจากชุด จะมีการเพิ่ม WorkUnit
เพียงหนึ่งรายการเท่านั้น (a CollectionChangeWorkUnit
) แต่เมื่อฉันเปลี่ยนคุณสมบัติอื่นด้วย ก็จะมีการเพิ่ม WorkUnit
(a ModWorkUnit
) อีกรายการหนึ่งด้วย
สิ่งที่ดูเหมือนจะเกิดขึ้นคือ CollectionChangeWorkUnit
ถูกละทิ้งไปแทน ModWorkUnit
ซึ่งจะไม่รับการเปลี่ยนแปลงในคอลเลกชัน
สิ่งที่ฉันกำลังพยายามไม่รองรับหรือมีวิธีแก้ไขหรือไม่