के साथ काम कर रहे फ्लुएंट एनएचबर्ननेट, मैंने अभी फ्लुएंट एनएचबेर्नेट पर स्विच किया है और मुझे एक समस्या आई है और इसके बारे में कोई जानकारी नहीं मिली है।इंटरफेस
यहाँ मामला है:
public class Field : DomainObject, IField
{
public Field()
{
}
public virtual string Name { get; set; }
public virtual string ContactPerson { get; set; }
public virtual bool Private { get; set; }
public virtual IAddress Address { get; set; }
}
IAddress एक वर्ग नामित पता द्वारा कार्यान्वित एक अंतरफलक है
public class Address : DomainObject, IAddress
{
public Address()
{
}
public virtual string City { get; set; }
public virtual string Country { get; set; }
public virtual string PostalCode { get; set; }
public virtual string StreetAddress { get; set; }
}
यहाँ दोनों वर्गों के लिए मेरे मानचित्रण फ़ाइलें
ADDRESS
public class AddressMap : ClassMap<Address>
{
public AddressMap()
{
WithTable("Addresses");
Id(x => x.Id, "Id").Access.AsCamelCaseField(Prefix.Underscore).GeneratedBy.Guid();
Map(x => x.City, "City");
Map(x => x.Country, "Country");
Map(x => x.PostalCode, "PostalCode");
Map(x => x.StreetAddress, "StreetAddress");
}
}
क्षेत्र
public class FieldMap : ClassMap<Field>
{
public FieldMap()
{
WithTable("Fields");
Id(x => x.Id, "Id").Access.AsCamelCaseField(Prefix.Underscore).GeneratedBy.Guid();
Map(x => x.Name, "Name");
Map(x => x.ContactPerson, "ContactPerson");
Map(x => x.Private, "Private");
References(x => x.Address, "AddressId").Cascade.Delete().Cascade.SaveUpdate();
}
}
तो जब मैं अपने डेटाबेस से कोई फ़ील्ड वस्तु पुनर्प्राप्त करने की कोशिश की, मैं एक NHibernate त्रुटि कहा गया है कि कि IAddress मैप नहीं है मिलता है। मैपिंग में पता वर्ग का उपयोग करने के लिए एनएचबीर्नेट को निर्दिष्ट करने का कोई तरीका है?
यदि अधिक जानकारी की आवश्यकता है तो कृपया मुझे बताएं।
धन्यवाद एक बहुत,
चार्ल्स
आप डेटाबेस में IAddress पदानुक्रम का मॉडल कैसे कर रहे हैं? टेबल-प्रति-पदानुक्रम (एक सारणी जिसमें सभी प्रकार के पते होते हैं), या टेबल-प्रति-कंक्रीट-क्लास? आपने कहा कि आपने फ्लुएंट पर स्विच किया है, इसलिए एक उदाहरण पोस्ट करना एक्सएमएल मैपिंग यह निर्धारित करने में मदद कर सकता है कि आप क्या हासिल करने की कोशिश कर रहे हैं। –
असल में मैंने एडीओ.NET इकाई फ्रेमवर्क से फ्लुएंट एनएचबेर्नेट के साथ निबर्ननेट में स्विच किया। मेरे डेटाबेस में, एक सारणी है जिसमें सभी प्रकार के पते होते हैं। वैसे, मैंने उन इंटरफेस को हटाने का फैसला किया, मुझे एहसास हुआ कि यह बेकार था। लेकिन मुझे लगता है कि सवाल अभी भी वैध है। धन्यवाद, चार्ल्स –