SQLite和Entity Framework

3
我正在尝试使用最新的Entity Framework与SQLITE数据库一起使用。我从这里安装了针对.NET Framework 4.0的SQLite提供程序x86:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
我成功地通过在Visual Studio 2012中使用服务器资源管理器将SQLITE添加为新数据源。然后,我添加了一个新的ADO.NET实体模型,并尝试从我的简单SQLite数据库中添加表。由于某种原因,无法添加这些表格,错误日志显示以下信息:
“The data type 'longchar' is currently not supported for the target .NET Framework version; >>the column 'Name' in table 'main.Person' was excluded.”
我不理解为什么它试图将SQLite的TEXT类型转换为longchar并失败。有人能帮我解决这个问题吗?

SQLite数据库中的字段类型是longchar?为什么不使用varchar或nvarchar代替longchar呢? - Álvaro García
SQLite 实际上是无类型的,因为类型被处理为字符串。它的提供者的工作是确定应该使用什么类型。由于某种原因,在我的情况下,提供程序想要将我的 TEXT 类型处理为 longchar,这就是问题所在。 - WonderMike
2个回答

4
我今天在为我工作的一个使用SQLLITE和ADO的项目设置开发环境时遇到了这个问题,但解决方法很简单。版本1.0.85.0有问题,而版本1.0.84.0可用。
32位: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe 64位: http://system.data.sqlite.org/downloads/1.0.84.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe 卸载时,请确保删除每个安装程序文件,并在重新安装时告诉安装程序重建您的GAC。应该可以正常工作,这是我和我的老板的构建机之间唯一的区别,该网站需要更好地列出以前的修订版。

如果我没记错的话,那个版本的SQLite只能与Visual Studio 2010一起使用。我正在使用2012,所以这对我没有帮助。不管怎样,还是谢谢。 - WonderMike
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版本。 - Chris Woodruff
似乎很奇怪,但在使用VS 2010启动项目并安装版本1.0.85.0后,我也遇到了在VS 2012上使用Sqlite的问题。我按照user2333398和@Chris-Woodruff的指示安装了版本1.0.84.0,结果一切神奇地开始正常工作了!谢谢大家! - OneSource

0

将您的SQLite表更改为任何TEXT字段都是NVARCHAR(max)。然后,.Net应该正确映射它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接