मैं है निम्नलिखित 2 वर्गों:धाराप्रवाह NHibernate एक-से-अनेक मानचित्रण
विज्ञापन
public virtual int Id { get; set;
public virtual IList<AdvertImage> AdvertImages { get; set; }
AdvertImage
public virtual int Id { get; set; }
public virtual string Filename { get; set;
public virtual Advert Advert { get; set; }
डीबी में, मेरा AdvertImages टेबल है एफके 'एडवर्टर आईडी' जो विज्ञापन तालिका से संबंधित है जिसमें 'आईडी' का पीके है।
यह एक-से-कई मैपिंग है, उस विज्ञापन में कई छवियां हो सकती हैं।
मेरे धाराप्रवाह NHibernate मैपिंग (संक्षिप्तता के लिए संपादित) कर रहे हैं:
AdvertMap
Id(x => x.Id)
.GeneratedBy.Identity();
...
HasMany(x => x.AdvertImages)
.KeyColumn("AdvertId")
.Inverse();
...
Table("Adverts");
AdvertImageMap
Id(x => x.Id)
.GeneratedBy.Identity();
...
References(x => x.Advert)
.Column("AdvertId");
...
Table("AdvertImages");
मैं कोड में Advert
का एक नया उदाहरण बनाने रहा हूँ, फिर AdvertImages
प्रोपे पॉप्युलेटिंग List<AdvertImage>
के साथ आरटीआई (विज्ञापन का)।
जब मैं डीबी में अपने Advert
ऑब्जेक्ट को जारी रखने के लिए जाता हूं, तो मैं विज्ञापन छवियों को उनके विज्ञापन छवि तालिका में डालना चाहता हूं, लेकिन 2 तालिकाओं के बीच संबंधों के कारण, मुझे विज्ञापन सम्मिलन पहले होने की आवश्यकता है, इसलिए पीके आईडी उत्पन्न होता है, जिसे तब विज्ञापन छवि तालिका में डाला जा सकता है। (जब मैं AdvertImage की अपनी सूची बनाता हूं, तो मैं फ़ाइल नाम की संपत्ति को पॉप्युलेट कर रहा हूं, लेकिन स्पष्ट रूप से उस चरण में नया विज्ञापन नहीं है, इसलिए जब विज्ञापन डीबी पर जारी रहता है तो पॉप्युलेट होना चाहिए)।
मैंने अलग-अलग इनवर्क्स() और कैस्केड सेटिंग्स के साथ प्रयोग करने का प्रयास किया है लेकिन अभी तक सफल नहीं हुआ है। क्या कोई मदद कर सकता है?
धन्यवाद कोल डब्ल्यू, और अच्छी टिप और जोड़ें विधियों को फिर से हटाएं। – marcusstarnes