मेरे पास एक सार श्रेणी है, और इसके सबक्लास, और मैं इसे NHibernate का उपयोग करके अपने डेटाबेस में मैप करना चाहता हूं। मैं फ्लुएंट का उपयोग कर रहा हूं, और मैपिंग कैसे करें read on the wiki। लेकिन जब मैं subclass के मैपिंग को एनएचबीर्नेटेट जोड़ता हूं। मैपिंग होने पर डुप्लिकेट मैपिंग अपवाद फेंक दिया जाता है। क्यूं कर?अमूर्त वर्ग और उप-वर्ग मैपिंग करते समय NHibernate डुप्लिकेट मैपिंग अपवाद
public abstract class FieldValue
{
public int Id { get; set; }
public abstract object Value { get; set; }
}
public class StringFieldValue : FieldValue
{
public string ValueAsString { get; set; }
public override object Value
{
get
{
return ValueAsString;
}
set
{
ValueAsString = (string)value;
}
}
}
और मैपिंग:
public class FieldValueMapping : ClassMap<FieldValue>
{
public FieldValueMapping()
{
Id(m => m.Id).GeneratedBy.HiLo("1");
// DiscriminateSubClassesOnColumn("type");
}
}
public class StringValueMapping : SubclassMap<StringFieldValue>
{
public StringValueMapping()
{
Map(m => m.ValueAsString).Length(100);
}
}
और अपवाद:
NHibernate.MappingException:
यहाँ मेरी (सरलीकृत) वर्ग हैं मानचित्रण दस्तावेज़ संकलन नहीं किया जा सका : (XmlDocument) ----> NHibernate.DuplicateMappingException: डुप्लिकेट क्लास/इकाई मैपिंग ना mespacePath.StringFieldValue
कोई विचार?
हाँ - मैं केवल स्पष्ट मैपिंग का उपयोग कर रहा हूं, लेकिन विचार मेरे दिमाग को पार कर गया .. मुझे यह देखने के लिए एक नज़र रखना होगा कि किसी कारण से यह उप-वर्ग को स्वचालित रूप से मैप किया गया है या नहीं। क्या ऐसा? – stiank81
यह पहली बार है जब मैं सबक्लास मैप का उपयोग करता हूं। क्लासमैप स्वचालित नहीं हैं, लेकिन क्या यह हो सकता है कि SubclassMaps हैं? मेरे पास फ्लुएंट के साथ इतना अनुभव नहीं है .. – stiank81
http://stackoverflow.com/questions/1538248/fluent-nhibernate-mapping-a-class-with-subclass-problem/1538419#1538419 आप यहां देख सकते हैं उदाहरण के लिए – Sly