खोज…


परिचय

SQLite एक स्व-निहित, सर्वर रहित, ट्रांसेक्शनल SQL डेटाबेस है। यह .NET अनुप्रयोग के भीतर एक स्वतंत्र रूप से उपलब्ध .NET SQLite लाइब्रेरी और एंटिटी फ्रेमवर्क SQLite प्रदाता दोनों का उपयोग करके उपयोग किया जा सकता है। यह विषय एंटिटी फ्रेमवर्क SQLite प्रदाता के सेटअप और उपयोग में जाएगा।

SQLite प्रदाता के साथ इकाई फ्रेमवर्क का उपयोग करने के लिए एक परियोजना की स्थापना

एंटिटी फ्रेमवर्क लाइब्रेरी केवल एक SQL सर्वर प्रदाता के साथ आती है। SQLite का उपयोग करने के लिए अतिरिक्त निर्भरता और कॉन्फ़िगरेशन की आवश्यकता होगी। सभी आवश्यक निर्भरताएँ NuGet पर उपलब्ध हैं।

SQLite प्रबंधित लाइब्रेरी स्थापित करें

सभी प्रबंधित अवसादों को NuGet पैकेज प्रबंधक कंसोल का उपयोग करके स्थापित किया जा सकता है। कमांड Install-Package System.Data.SQLite चलाएँ।

System.Data.SQLite स्थापित करना

जैसा कि ऊपर दिखाया गया है, System.Data.SQLite स्थापित करते समय, सभी संबंधित प्रबंधित लाइब्रेरी इसके साथ स्थापित की जाती हैं। इसमें System.Data.SQLite.EF6 , SQLite के लिए EF प्रदाता शामिल हैं। प्रोजेक्ट अब SQLite प्रदाता का उपयोग करने के लिए आवश्यक असेंबली का भी संदर्भ देता है।

प्रोजेक्ट संदर्भ

जिसमें अनमैन्डेड लाइब्रेरी शामिल है

SQLite प्रबंधित लाइब्रेरी SQLite.Interop.dll नामक एक अप्रबंधित असेंबली पर निर्भर हैं। यह SQLite पैकेज के साथ डाउनलोड किए गए पैकेज असेंबली के साथ शामिल है, और जब आप प्रोजेक्ट बनाते हैं तो वे स्वचालित रूप से आपकी बिल्ड निर्देशिका में कॉपी हो जाते हैं। हालाँकि, क्योंकि यह अप्रबंधित है, यह आपकी संदर्भ सूची में शामिल नहीं होगा। लेकिन ध्यान दें, यह असेंबली ज्यादातर SQLite असेंबली के काम करने के लिए आवेदन के साथ वितरित की जाती है।

नोट: यह असेंबली थोड़ा-सा निर्भर है, जिसका अर्थ है कि आपको प्रत्येक बिटनेस के लिए एक विशिष्ट असेंबली को शामिल करने की आवश्यकता होगी जिसे आप समर्थन करना चाहते हैं (x86 / 6464)।

परियोजना के App.config का संपादन

SQLite को Entity Framework प्रदाता के रूप में उपयोग करने से पहले app.config फ़ाइल को कुछ संशोधनों की आवश्यकता होगी।

आवश्यक सुधार

पैकेज को स्थापित करते समय, app.config फ़ाइल SQLite और SQLite EF के लिए आवश्यक प्रविष्टियों को शामिल करने के लिए स्वचालित रूप से अपडेट की जाती है। दुर्भाग्य से इन प्रविष्टियों में कुछ त्रुटियां हैं। इसे सही ढंग से काम करने से पहले उन्हें संशोधित करने की आवश्यकता है।

सबसे पहले, config फाइल में DbProviderFactories तत्व का पता लगाएं। यह system.data तत्व के भीतर है और इसमें निम्नलिखित शामिल होंगे

<DbProviderFactories>
  <remove invariant="System.Data.SQLite.EF6" />
  <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
  <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

एकल प्रविष्टि को शामिल करने के लिए इसे सरल बनाया जा सकता है

<DbProviderFactories>
    <add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

इसके साथ, हमने निर्दिष्ट किया है कि EF6 SQLite प्रदाताओं को SQLite कारखाने का उपयोग करना चाहिए।

SQLite कनेक्शन स्ट्रिंग जोड़ें

कनेक्शन स्ट्रिंग्स को मूल तत्व के भीतर कॉन्फ़िगरेशन फ़ाइल में जोड़ा जा सकता है। SQLite डेटाबेस तक पहुँचने के लिए कनेक्शन स्ट्रिंग जोड़ें।

<connectionStrings>
    <add name="TestContext" connectionString="data source=testdb.sqlite;initial catalog=Test;App=EntityFramework;" providerName="System.Data.SQLite.EF6"/>
</connectionStrings>

यहां ध्यान देने योग्य बात provider । इसे System.Data.SQLite.EF6 सेट किया गया है। यह EF को बताता है कि जब हम इस कनेक्शन स्ट्रिंग का उपयोग करते हैं, तो हम SQLite का उपयोग करना चाहते हैं। निर्दिष्ट data source केवल एक उदाहरण है और आपके SQLite डेटाबेस के स्थान और नाम पर निर्भर करेगा।

आपकी पहली SQLite DbContext

सभी इंस्टॉलेशन और कॉन्फ़िगरेशन पूर्ण होने के साथ, आप अब एक DbContext का उपयोग करना शुरू कर सकते हैं जो आपके SQLite डेटाबेस पर काम करेगा।

public class TestContext : DbContext
{
    public TestContext()
        : base("name=TestContext") { }
}

name=TestContext निर्दिष्ट करके, मेरा संकेत है कि app.config फ़ाइल में स्थित TestContext कनेक्शन स्ट्रिंग का उपयोग संदर्भ बनाने के लिए किया जाना चाहिए। उस कनेक्शन स्ट्रिंग को SQLite का उपयोग करने के लिए कॉन्फ़िगर किया गया था, इसलिए यह संदर्भ SQLite डेटाबेस का उपयोग करेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow