मैं जो कई SubArea बच्चे हैं एक क्षेत्र वस्तु है:NHibernate बचाने/अद्यतन घटना श्रोताओं: बच्चे वस्तु के लिए सुन बचाता
public class Area
{
...
public virtual IList<SubArea> SubAreas { get; set; }
}
वह बच्चों को एक uni-दिशात्मक गैर व्युत्क्रम संबंध के रूप में उल्लेख किया जाता है:
public class AreaMapping : ClassMap<Area>
{
public AreaMapping()
{
HasMany(x => x. SubAreas).Not.Inverse().Cascade.AllDeleteOrphan();
}
}
क्षेत्र मेरी कुल जड़ है। जब मैं एक क्षेत्र को सहेजता हूं (उदा। सत्र। सेव (क्षेत्र)), क्षेत्र बचाया जाता है और बच्चे सबएरिया स्वचालित रूप से कैस्केड हो जाते हैं।
जब भी मेरे क्षेत्र और/या उपारे जारी रहते हैं तो मैं पकड़ने के लिए ईवेंट श्रोता को सहेजना या अपडेट करना चाहता हूं। उदाहरण के लिए कहें मेरे पास एक क्षेत्र है, जिसमें 5 सबएरिया हैं। अगर मैं SaveEventListeners में हुक: जब मैं क्षेत्र को बचाने
Configuration.EventListeners.SaveEventListeners =
new ISaveOrUpdateEventListener[] { mylistener };
, Mylistener केवल एक बार केवल क्षेत्र के लिए निकाल दिया जाता है (SubAreas अनदेखी कर रहे हैं)। मैं चाहता हूं कि 5 श्रोताओं को घटना श्रोता में भी पकड़ा जाए। अगर मैं बजाय SaveOrUpdateEventListeners में हुक: जब मैं क्षेत्र को बचाने
Configuration.EventListeners.SaveOrUpdateEventListeners =
new ISaveOrUpdateEventListener[] { mylistener };
, Mylistener नहीं बिल्कुल निकाल दिया है।
Configuration.EventListeners.SaveEventListeners =
new ISaveOrUpdateEventListener[] { mylistener };
Configuration.EventListeners.SaveOrUpdateEventListeners =
new ISaveOrUpdateEventListener[] { mylistener };
जब मैं क्षेत्र बचाने के लिए, Mylistener निकाल दिया जाता है 11 बार: क्षेत्र के लिए प्रत्येक SubArea के लिए एक बार, और दो बार अजीब, अगर मैं SaveEventListeners और SaveOrUpdateEventListeners में हुक! (मुझे लगता है क्योंकि NHIbernate SubArea को घुमा रहा है और फिर क्षेत्रीय कुंजी के साथ अद्यतन कर रहा है)।
क्या कोई जानता है कि मैं यहां क्या कर रहा हूं, और कैसे मैं श्रोता को को प्रत्येक क्षेत्र और सबरेआ के लिए आग लग सकता हूं?
क्या आपने इसे काम किया? एक ही समस्या है – andy
मुझे भी! क्या किसी को समाधान मिला? – nozzleman