2013-11-25 14 views
20

के साथ मारियाडीबी का उपयोग करके हाल ही में, मैंने एक खबर पढ़ी कि मारिया डीबी Google के अनुसार MySQL has unfriendly pricing for clustered/enterprise version के बाद से MySQL के लिए ड्रॉप-ऑफ प्रतिस्थापन है।एंटिटी फ्रेमवर्क

अब मुझे Google पर मारिया डीबी के लिए ईएफ के बारे में कुछ भी प्रासंगिक नहीं मिल रहा है, इसलिए मुझे उम्मीद है कि कोई इसके बारे में जानता है। क्या MySQL driver for this since it is 100% compatible का उपयोग करना ठीक है? कोई विचार?

अद्यतन

मैं सिर्फ पता चला कि इसके लिए RedHat is also switching from MySQL to MariaDB डिफ़ॉल्ट डेटाबेस प्रबंधन प्रणाली है। इसलिए मेरी वर्तमान परियोजना के लिए इसे मारियाडीबी पर स्विच करना जरूरी है।

+0

देखकर रूप MariaDB एक राजनीतिक कांटा है कोशिश कर रहा लायक नहीं हैं, वे हालांकि MySQL के तार प्रोटोकॉल के साथ संगतता को तोड़ने के लिए पागल हो जाएगा। क्लाइंट सॉफ़्टवेयर के पूरे परिवार को बनाए रखने की तुलना में संगतता बनाए रखना शायद आसान है। वे दस्तावेज़ों में यह भी स्पष्ट रूप से कहते हैं: https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/। – millimoose

+0

मेरे पास मारियाडीबी के साथ एक रेडहाट सर्वर वर्चुअलाइज्ड करने के लिए संसाधन नहीं हैं। मैंने जो कोशिश की है वह एक रेडहाट सर्वर पर एक MySQL है। –

+0

आप वर्चुअलबॉक्स डाउनलोड नहीं कर सकते हैं, CentOS, और MariaDB इंस्टॉल कर सकते हैं, और उस डीबी पर नमूना प्रोजेक्ट को इंगित कर सकते हैं? – millimoose

उत्तर

7

मैं मारियाडीबी 10 को एंटिटी फ्रेमवर्क के साथ उपयोग करने में सक्षम था हालांकि इसे मुख्य रूप से थोड़ा सा काम करने की आवश्यकता थी क्योंकि MySQL टूल्स थोड़ी छोटी हैं।

दृश्य स्टूडियो 2010/2012 में MySQL/MariaDB के साथ काम करने के लिए आपको MySQL Installer का उपयोग कर MySQL for Visual Studio स्थापित करने की आवश्यकता। मैंने वेब संस्करण का उपयोग किया क्योंकि मैं केवल कनेक्टर और एक्सटेंशन डाउनलोड करना चाहता था। एक बार ऐसा करने के बाद, आप मारिया डीबी से कनेक्शन जोड़ सकते हैं और ईएफ मॉडल बना सकते हैं।

हालांकि यह आपके कोड को चलाने के लिए पर्याप्त नहीं है। सबसे पहले आपको NuGet का उपयोग करके MySQL कनेक्टर जोड़ने की आवश्यकता है।

असुविधाजनक रूप से, विजुअल स्टूडियो के लिए MySQL एक पुराने प्रदाता संस्करण (here का उल्लेख) का संदर्भ जोड़ता है और नया संस्करण लोड नहीं कर सकता है। इसे ठीक करने के, मैं अपने app.config में निम्नलिखित खंड कहा:

<system.data> 
    <DbProviderFactories> 
    <remove invariant="MySql.Data.MySqlClient"/> 
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" 
      description=".Net Framework Data Provider for MySQL" 
      type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 

यह एक नया एक के साथ पुराने संदर्भ बदल देता है। ध्यान दें कि मैं

<remove invariant="MySql.Data.MySqlClient"/> 

नहीं

<remove name="MySql Data Provider"/> 

इस्तेमाल किया remove तत्व में।

वर्तमान में, दृश्य स्टूडियो के लिए MySQL दृश्य स्टूडियो में समर्थित नहीं 2013

अद्यतन - 2017

कनेक्टर/नेट अनिवार्य रूप से स्थिर है, वही समस्या यह 2013 है, जैसे में था के साथ कोई सच असीमित कॉल। "Async" कॉल नकली हैं - वे अलग-अलग धागे पर चलते हैं, async का उपयोग करने के बहुत ही उद्देश्य को हराते हैं। वह अकेले वेब अनुप्रयोगों के लिए अनुपयुक्त बनाता है, जहां कोई न्यूनतम थ्रेड/सीपीयू की संख्या का उपयोग करके जितना संभव हो उतना अनुरोध सर्वर करना चाहता है।

.NET कोर समर्थन के बारे में कभी भी ध्यान न दें।

यही कारण है कि पिछले कुछ वर्षों में लोगों ने अपना स्वयं का, वास्तव में असीमित प्रदाता बनाया है। अधिक लोकप्रिय वालों से कुछ हैं:

  • MySqlConnector नेट और के लिए वास्तव में एक अतुल्यकालिक प्रदाता प्रदान करता है।नेट कोर
  • Pomelo MySQLConnector

के शीर्ष पर एफई कोर समर्थन प्रदान करता है के बारे में 100K NuGet प्रत्येक, लगातार संस्करणों और सक्रिय रखरखाव डाउनलोड के साथ।

वे "आधिकारिक" है, लेकिन निश्चित रूप से

+0

अब कुछ प्रकार का समर्थन है (वीएस2013 और MySQL), लेकिन यह दर्द है। मैं 2012 के साथ ईएफ बनाने और फिर विकास के लिए 2013 का उपयोग कर समाप्त हुआ। – Noctis

+0

और फिर आपके पास एक जीपीएल-एप्लीकेशन है, बीटीडब्ल्यू। - अगर आपके पास जीपीएल (एलजीपीएल नहीं) MySQL कनेक्टर के लिए वाणिज्यिक लाइसेंस नहीं है। –

+0

@StefanSteiger "आधिकारिक" कनेक्टर में इतनी गंभीर समस्याएं हैं (जैसे नकली एसिंक कॉल) कि लोगों ने पिछले 3 वर्षों में अपनी परियोजनाएं शुरू की हैं। [MySqlConnector] (https://github.com/mysql-net/MySqlConnector) सबसे लोकप्रिय ADO.NET प्रदाता और [Pomelo] (https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql) प्रतीत होता है इसके शीर्ष पर ईएफ समर्थन प्रदान करता है। ऐसा लगता है कि * ओरेकल * को MySQL (.NET के लिए मेरा मतलब है) –

संबंधित मुद्दे