के साथ एक-से-एक संबंध मैप करना मुझे एनएचबीर्नेट में इस संबंध को मॉडल करना है (कोड को विषय पर रहने के लिए थोड़ा सा सरल बनाना) - एक कर्मचारी खाताधारक हो सकता है (इसलिए, यह वैकल्पिक है):गलत (ब्राउनफील्ड) डेटाबेस स्कीमा
तालिका कर्मचारी (आईडी, संख्या, नाम) तालिका EmployeeIsAccountManager (संख्या, MaxAllowedDiscount)
बजाय में तालिका EmployeeIsAccountManager तालिका कर्मचारी की ओर इशारा करते एक आईडी विदेशी कुंजी होने के, मैं कर्मचारी में एक संख्या स्तंभ है तालिका जो तालिका कर्मचारी संख्या प्रबंधक में संख्या कॉलम को इंगित करती है।
मैं इसे NHibernate में कैसे मैप करूं? मैंने EmployeeIccountManager क्लास मैपिंग पर विदेशी जनरेटर का उपयोग करने का प्रयास किया है, लेकिन यदि मैं संख्या का उपयोग विदेशी जनरेटेड मान के रूप में करता हूं, तो यह कर्मचारी की आईडी पर नक्शा करता है, जो संख्या के बजाय आईडी है। मैं रचना का उपयोग करने के मेरी कक्षा मॉडलिंग:
public class Employee
{
public virtual int Id { get; set; }
public virtual short Number {get; set; }
public virtual string Name {get; set; }
public virtual AccountManager AccountManager { get; set; }
}
public class AccountManager
{
public virtual short Number { get; set; } /*needed because of ID only?*/
public virtual decimal MaxAllowedDiscount { get; set }
}
मैंने बहुत कोशिश की है (एक-से-एक, कई-टू-वन, विदेशी जनरेटर), लेकिन मैं समझ नहीं इस के साथ किया जा सकता है अगर NHibernate। बीटीडब्ल्यू: मैं कक्षाएं, मैपिंग इत्यादि बदल सकता हूं लेकिन मैं ब्राउनफील्ड स्थिति (कोड के 2+ मिलियन लाइनों के साथ पुराना आवेदन, लगभग 1000 रूपों) के कारण तालिका संरचना को बदल नहीं सकता हूं।
किसी भी मदद की सराहना की है, धन्यवाद! टेड
संपत्ति-रेफरी मानचित्रण विशेषता देखिए ... – JulianM