समस्या बहुत सामान्य लगती है, लेकिन मैं fluentnhibernate के लिए नया हूं और मेरी सभी खोजों ने कुछ भी उपयोगी नहीं किया है।सबक्लास के उप-वर्गों के लिए भेदभावकर्ता का उपयोग
public class Person
{
public virtual int Id { get; protected set; }
public virtual string GivenName { get; set; }
public virtual string FamilyName { get; set; }
}
public class Employee : Person
{
public virtual string WhoAmI { get { return "I am just an Employee"; } protected set { } }
}
public class Boss : Employee
{
public override string WhoAmI { get { return "I am the boss."; } protected set { } }
}
यानी:
मैं एक वर्ग पदानुक्रम इस एक के समान है एक बेस क्लास और दो उप-वर्ग (एक दूसरे से व्युत्पन्न)। उप-वर्गों का एक ही हस्ताक्षर होता है, लेकिन आधार वर्ग नहीं है।
मानचित्रण नीचे एक ही तालिका में तीन वर्गों के उदाहरण के बारे में सभी जानकारी डाल देंगे:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.GivenName);
Map(x => x.FamilyName);
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
Map(x => x.WhoAmI);
}
}
public class BossMap : SubclassMap<Boss>
{
public BossMap()
{
}
}
मेरा प्रश्न:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.GivenName);
Map(x => x.FamilyName);
DiscriminateSubClassesOnColumn("type");
}
}
public class EmployeeMap : SubclassMap<Employee>
{
public EmployeeMap()
{
Map(x => x.WhoAmI);
}
}
public class BossMap : SubclassMap<Boss>
{
public BossMap()
{
}
}
DiscriminateSubClassesOnColumn बाहर छोड़कर तीन तालिकाओं उत्पन्न होगा है यह कक्षाएं (फ्लेंटेंबर्ननेट में) को इन कक्षाओं को बिल्कुल दो तालिकाओं में मैप करने के लिए, यानी
- एक व्यक्ति तालिका जिसमें व्यक्ति वर्ग से व्युत्पन्न सभी गुण हैं, और
- एक कर्मचारी तालिका जिसमें कर्मचारी वर्ग से प्राप्त सभी संपत्तियां हैं, साथ ही एक भेदभावकर्ता जो सामान्य कर्मचारियों और मालिकों के बीच भेदभाव करता है?
वास्तव में नहीं। ऐसा लगता है कि मुझे लगता है कि FlissentConfigurationExceptions, दोनों PersMapinateSubClassesOnColumn के साथ PersonMap में और बिना। – nasenbohrer
अपवाद संदेश क्या है? –
सबसे बड़ा अपवाद "डुप्लिकेट क्लास/इकाई मैपिंग उदाहरण था। फर्स्टप्रोजेक्ट.इन्टिटीज। कर्मचारी" – nasenbohrer