关于sqlite使用entity framework的布署问题
要开发一个网站,为了布署方便,想使用Sqlite,于是先做个demo试试,本机运行正常了,然后放到服务器上试,出现问题了“指定的存储区提供程序在配置中找不到,或者无效。”----> "找不请求的.Net Framework数据提供程序。可能没有安装”。原文是英文,大概是这意思,于是搜了一下,找到这篇文章:http://blog.csdn.net/liufan76/archive/2008/10/29/3173282.aspx
赶紧按方法做,加上这段代码到web.config中:
<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, Version=1.0.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
</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, Version=1.0.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
</system.data>
果然如文中所说,出现第二个问题:A null was returned after calling the 'GetService' method 意思是说“调用GetService方法返回了空”再看这篇文章的解决方法就烦了,有点不知所云,于是百度这个问题,还好,一找就找到一篇E文的:http://sqlite.phxsoftware.com/forums/p/1349/5793.aspx,虽说E文不行,不过幸好没有长篇大论,非常简单,加上引用“ System.Data.SQLite.Linq”发布到本地就正常运行了。
总结一下:发布的时候要在web.config指定数据提供程序,并且把sqlite的相关linq的程序集引入就OK了,服务器除了framework不需要其它东西,布署还是挺方便的,没有啥控制权限的虚拟主机也是能用sqlite和ef的。