नहीं है यहाँ डोमेन मॉडल वर्ग हैं:NHibernate मानचित्रण सार है और discriminator एक स्ट्रिंग
public abstract class BaseClass
{
...
}
public class ChildClass : BaseClass
{
...
}
ध्यान दें कि माता पिता वर्ग सार है और यह है कि क्या मुझे कुछ कठिनाइयों देता है जब धाराप्रवाह निबर्ननेट के साथ मानचित्र करने का समय आता है। मेरा भेदभाव एक बाइट है (डीबी में tinyint)।
DiscriminateSubClassesOnColumn<byte>("Type")
.SubClass<ChildClass>()
.IsIdentifiedBy((byte)OperationType.Plan)
.MapSubClassColumns(p => { ... })
त्रुटि संदेश मिल रहा है: (BaseClass के लिए मानचित्रण वर्ग से लिया गया) क्योंकि यह एक स्ट्रिंग नहीं है और मैं, आधार वर्ग पर एक discriminator मान सेट करने का प्रबंधन नहीं यह काम नहीं करता कर सकते हैं:
कक्षा प्रारंभिक विधि UnitTest1.MyClass प्रारंभ अपवाद को प्रारंभ करें। NHibernate.MappingException: NHibernate.MappingException: इकाई बेसक्लस ---> System.FormatException की SQL स्ट्रिंग में भेदभावकर्ता मान को प्रारूपित नहीं कर सका: इनपुट स्ट्रिंग सही प्रारूप में नहीं थी ..
निम्न पोस्ट यह समझाता है कि क्या होता है। वे एक्सएमएल के साथ समाधान देते हैं लेकिन धाराप्रवाह निबर्ननेट के साथ नहीं: http://forum.hibernate.org/viewtopic.php?t=974225
सहायता के लिए धन्यवाद।
SetAttribute("discriminator-value", "-1");
यह FNH एक स्ट्रिंग का उपयोग नहीं करने का निर्देश देने की (मैं इसे लगता है कि लगता है:
एक्सएमएल के साथ समाधान को जोड़ने के लिए धन्यवाद - बिल्कुल मुझे क्या चाहिए! –