आप यह अब और पढ़ने होने की संभावना नहीं हैं, लेकिन आप (, web.config या आप के लिए,) अपने app.config में निम्नलिखित छूट रहा है:
<configuration>
<system.data>
<DbProviderFactories>
<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>
</system.data>
</configuration>
विशेष रूप से, अगर आप अपनी वेबसाइट में लिंक की गई लाइब्रेरी में स्क्लाइट का उपयोग करके, आपको इसे वेबसाइट की कॉन्फ़िगरेशन फ़ाइल में जोड़ना होगा - लाइब्रेरी नहीं! यह कारण है कि आप प्रदाता को कैसे लोड कर रहे हैं: अनिवार्य रूप से, आप रनटाइम पर निर्धारित कर रहे हैं जो "System.Data.SQLite" स्ट्रिंग का उपयोग करके लोड करने के लिए dll लोड कर रहा है, और उपयुक्त प्रदाता का पता लगाने से प्रविष्टि की सेटिंग्स का उपयोग किया जाता है सभा।
संपादित करें: वैसे, जब आप पुस्तकालय एक SQLite dependancy है कि लिख रहे हैं, तो आप इस जटिलता से बच सकते हैं। रनटाइम पर स्क्लाइट देखने के लिए आपको DbProviderFactories
का उपयोग करने की आवश्यकता नहीं है; आप एक संकलन-समय निर्भरता भी ले सकते हैं, जिसे प्रबंधित करना आसान हो सकता है। तो फिर तुम ऊपर app.config खंड की उपेक्षा कर सकते, और बदले की सभी आवृत्तियों की जगह:
DbProviderFactories.GetFactory("System.Data.SQLite").CreateConnection()
, तो आप एक सादे पुस्तकालय कॉल का उपयोग कर रहे कनेक्शन बनाने के लिए साथ
System.Data.SQLite.SQLiteFactory.Instance.CreateConnection()
आप ऐसा करते हैं और डीबी प्रदाता का कोई रनटाइम चयन नहीं है। यह कम लचीला हो सकता है क्योंकि अब आप कॉन्फ़िगरेशन फ़ाइल के माध्यम से डेटा प्रदाताओं का आदान-प्रदान नहीं कर सकते हैं, लेकिन पर्याप्त पुस्तकालयों के लिए पर्याप्त है। दुर्भाग्यवश, यदि आप लाइब्रेरी कोड को नियंत्रित नहीं करते हैं, तो यह एक विकल्प नहीं है।
स्रोत
2009-07-11 07:44:23
हाय, उत्तर के लिए धन्यवाद। हां, मैंने फिल के ब्लॉगपोस्ट को देखा है। मैं सामान्य एएसपी.नेट एमवीसी ऐप को ठीक से तैनात कर सकता हूं। यह एंटिटी फ्रेमवर्क + एसक्यूएलसाइट के साथ संयोजन है जो समस्याग्रस्त है। मैंने System.Data.Entity.dll और System.Data.SQLite.dll दोनों को बिन फ़ोल्डर में ऊपर उठाया है। अभी तक कोई भाग्य नहीं है। – Pompair
हमम। क्या वे वेब असेंबली में आपके असेंबली सेक्शन में हैं? – tvanfosson