मुझे आज भी उसी समस्या का सामना करना पड़ा, अंतर यह है कि मैं अपने लिए टेबल बनाने के लिए कोड फर्स्ट पर निर्भर नहीं हूं, मैं उन्हें मैन्युअल रूप से बना रहा हूं।
मैंने दिए गए विवरण का पालन किया है यहां और मैं आपके जैसी ही त्रुटि पर समाप्त हुआ, मैंने मैन्युअल रूप से अपनी टेबल पर "डिस्क्रिमिनेटर" फ़ील्ड बनाया है और इसके प्रकार को MEDIUMTEXT में बदल दिया है, लेकिन प्रदाता ने जोर देकर कहा कि मैं किसी तरह MaxLength प्रॉपर्टी प्रदान कर रहा था, भले ही MEDIUMTEXT में VARCHAR की तरह कोई MaxLength नहीं है। , मुझे लगता है कि यह प्रदाता पर एक बग होना चाहिए।
ठीक है, इसके आसपास काम करने के लिए मैंने धाराप्रवाह एपीआई का उपयोग मैन्युअल रूप से विवेचक कॉलम नाम (जिसे मैंने अभी "डिस्क्रिमिनेटर" के रूप में रखा है) को बताने के लिए किया है और वे मान जो ईएफ को विवेचक कॉलम से उम्मीद करनी चाहिए, आपके मामले में यह होगा:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Vehicle>()
.Map<Car>(m => m.Requires("Discriminator").HasValue("Car"))
.Map<Bike>(m => m.Requires("Discriminator").HasValue("Bike"));
}
मैंने बिना किसी स्पष्ट समस्या के अपने विभेदक कॉलम के प्रकार को VARCHAR (50) में बदल दिया है, यह अब मेरे लिए अच्छा काम कर रहा है। मेरे लिए विकल्प दूसरे ओआरएम में माइग्रेट करना होगा जो कि बहुत अधिक काम है, मैं MySQL प्रदाता के अगले संस्करणों की प्रतीक्षा करूंगा और परीक्षण करूंगा कि क्या उन्होंने इसे ठीक कर दिया है, इस बीच मैं इस समाधान पर टिकूंगा।