Nhibernate dan kolom yang dimodifikasi tidak melacak penghapusan dari koleksi dengan benar

Saya punya model yang terlihat seperti:

class Case
{
    public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
    public virtual DateTime LastModified { get; set; }
}

class CaseToCaseTag
{
    public virtual Case Left { get; set; }
}

Saat mengaudit hubungan ini dengan envers, saya mengalami masalah dengan pelacakan properti yang dimodifikasi saat menghapus nilai dari kumpulan.

Jika satu-satunya hal yang saya ubah dalam entitas kasus saat menghapus nilai dari himpunan adalah "penghapusan set" maka envers melacak dengan benar bahwa properti CaseTags diubah dalam revisi. Namun, jika saya juga mengubah properti lain, misalnya properti LastModified, saya tidak menyetel tanda CaseTags_MOD dengan benar.

Saya telah melacaknya (menurut saya) ke metode AuditProcess.AddWorkUnit. Ketika saya hanya menghapus dari set hanya satu WorkUnit yang ditambahkan (a CollectionChangeWorkUnit), tetapi ketika saya juga mengubah properti lain, WorkUnit lainnya (a ModWorkUnit) juga ditambahkan.

Apa yang tampaknya terjadi kemudian adalah CollectionChangeWorkUnit dibuang dan digantikan dengan ModWorkUnit, yang pada gilirannya tidak mengambil perubahan pada koleksi.

Apakah yang saya coba lakukan tidak didukung, atau adakah cara lain?


person aeliusd    schedule 17.11.2015    source sumber


Jawaban (1)


Kedengarannya seperti bug. Harap buat permintaan tarik dengan pemetaan minimal untuk mereproduksi masalah.

person Roger    schedule 18.11.2015
comment
Bagus, saya baru saja dalam proses membuat repo. Akan memasang permintaan tarik di siang hari. - person aeliusd; 18.11.2015
comment
Permintaan penarikan Anda telah digabungkan, diperbaiki nhibernate.jira.com/projects/NHE/ masalah/NHE-146 - person Roger; 19.11.2015