Bundan sonra bunu okuma olası değildir, ancak (web.config sizin için, veya) app.config şu eksik: sen eğer,
<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>
Özellikle Web sitenize bağlı bir kütüphanede sqlite kullanarak, bu kütüphaneyi değil web sitesinin yapılandırma dosyasına eklemelisiniz! Bu, sağlayıcısını nasıl yüklediğinizden kaynaklanır: temel olarak, "System.Data.SQLite" dizesini kullanarak yüklenecek dll'de çalışma zamanını belirlersiniz ve uygun sağlayıcıyı bulmak, girişin ayarlarını kullanarak yapılır montaj.
Düzenleme: Bir sqlite dependancy sahip kütüphane yazarken arada, bu karmaşıklığı önleyebilirsiniz. Çalışma zamanında sqlite aramak için DbProviderFactories
'u kullanmanız gerekmez; Daha kolay yönetilebilen bir derleme zamanı bağımlılığı da alabilirsiniz. Sonra yukarıdaki app.config bölümü geçebilirsiniz ve bunun yerine tüm örneklerini değiştirmek:
DbProviderFactories.GetFactory("System.Data.SQLite").CreateConnection()
, bağlantıyı oluşturmak için düz bir kütüphane çağrısı kullandığınız
System.Data.SQLite.SQLiteFactory.Instance.CreateConnection()
Bunu yaparsanız
ile ve db sağlayıcısının çalışma zamanı seçimi yok. Bu, daha az esnek olabilir, çünkü yapılandırma sunucusu aracılığıyla veri sağlayıcıları değiştiremezsiniz, ancak yeterli sayıda kütüphane için. Maalesef, kütüphane kodunu kontrol etmezseniz, bu bir seçenek değildir.
Merhaba, bir cevap için teşekkürler. Evet, Phil'in blog yazısını gördüm. Ben sadece normal ASP.NET MVC uygulamasını dağıtabilirim. Sorunlu olan Entity Framework + SQLite ile kombinasyon. Ben System.Data.Entity.dll ve System.Data.SQLite.dll bin klasörüne ikisini de ettik. Henüz şans yok. – Pompair
Hmmm. Web yapılandırmasında derlemeler bölümünüzde mi? – tvanfosson