Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

.NET EF4.1 + MySQL के साथ क्लास इनहेरिटेंस

मुझे आज भी उसी समस्या का सामना करना पड़ा, अंतर यह है कि मैं अपने लिए टेबल बनाने के लिए कोड फर्स्ट पर निर्भर नहीं हूं, मैं उन्हें मैन्युअल रूप से बना रहा हूं।

मैंने दिए गए विवरण का पालन किया है यहां और मैं आपके जैसी ही त्रुटि पर समाप्त हुआ, मैंने मैन्युअल रूप से अपनी टेबल पर "डिस्क्रिमिनेटर" फ़ील्ड बनाया है और इसके प्रकार को 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 प्रदाता के अगले संस्करणों की प्रतीक्षा करूंगा और परीक्षण करूंगा कि क्या उन्होंने इसे ठीक कर दिया है, इस बीच मैं इस समाधान पर टिकूंगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में MySQL और SQLite अंतर

  2. SQLAlchemy का उपयोग करके पांडा के साथ MySQL डेटाबेस को लिखना, to_sql

  3. mysql_real_escape_string और array_map रिक्त तार लौटाता है?

  4. टेबल्स बनाते समय SQL इंटीजर रेंज

  5. केवल एक mysql क्वेरी में पहली पंक्ति को हथियाना