2013-04-20 80 views
3

我想用最新的实体框架使用SQLITE数据库。我从这里安装了用于.NET Framework 4.0的SQLite提供程序x86:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wikiSQLite和实体框架

我通过使用Visual Studio 2012中的服务器资源管理器成功添加SQLITE作为新的数据源。然后,我添加了新的ADO.NET实体模型,并试图从我简单的sqlite数据库添加表。出于某种原因,这些表不能添加和错误日志中说以下内容:

“LONGCHAR”目前不支持目标.NET Framework版本的数据类型; >>表'main.Person'中的'Name'列被排除。

我不明白为什么它试图转换SQLite的TEXT类型LONGCHAR和失败。任何人都可以帮我解决这个问题吗?

+0

SQLite数据库中字段的类型是longchar?为什么不使用varchar或nvarchar而不是长字符? – 2013-04-21 11:11:24

+0

SQLite实际上是无类型的,因为类型是作为字符串处理的。它是提供者确定它应该使用什么类型的工作。出于某种原因,我的情况提供者想要处理我的TEXT类型为longchar,这就是问题所在。 – WonderMike 2013-04-22 05:57:00

回答

4

我在为使用SQLLITE和ADO的项目设置了我的开发环境后,今天刚刚收到此问题,此修复很简单。版本1.0.85.0已损坏,版本1.0.84.0正常工作。

32 BIT: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

64 BIT: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe

卸载请确保删除每个安装以及当您重新安装告诉安装重建GAC的程序文件。应该工作,这是我和我bose建立机器之间的唯一区别,该网站需要更好地列出以前的修订。

+0

如果我是对的,那个版本的SQLite只能用于Visual Studio 2010.我使用的是2012,所以这对我没有帮助。不管怎么说,多谢拉。 – WonderMike 2013-05-01 10:15:19

+2

您可以从http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx45-setup-bundle-x86-2012-1.0.84.0.exe获得Visual Studio 2012的1.0.84.0版本 – 2013-05-02 17:36:36

+0

看起来很奇怪,在项目启动VS 2010并安装版本1.0.85.0后,我在VS 2012上遇到了Sqlite问题。我遵循user2333398和@ Chris-Woodruff的指示并安装了版本1.0.84.0和** voila **所有东西都神奇地凝视着工作!多谢你们! – OneSource 2013-05-03 11:28:54

0

改变你的SQLite表,以便任何TEXT字段都是NVARCHAR(max)。 .Net应该正确映射它们。