SQLite.NET导致重现和不一致的问题

时间:2016-01-19 03:28:17

标签: c# .net wpf entity-framework sqlite

我有一个我公司的项目,我正在领导。在某些时候,要求客户端存储应该是SQLite DB,以便对旧数据库进行投诉。那是无关紧要的。我的解决方案是使用NuGET的SQLite.NET包和EntityFramework以及CodeFirst来自动化流程或创建和管理DB文件。经过一天的修修补补,我终于开始工作了。但当然,我的同事从SVN更新,他的游戏机突然显示200多个与SQLite相关的错误,3个程序集上的错误不会编译,因为尽管事实上没有编译器错误。

我确实在这种情况下找到了解决方案,其中包括永久在办公室跑来跑去并解决所有其他人的问题。我的清单是这样的:

  • 是否所有项目都设置为 .net 4.0
  • Bcl.Async 已安装?
  • SQLite 已安装?

如果缺少其中任何一点,项目将无法引用其他一些程序集,编译器会出现错误“无法解析引用/依赖”或其他内容。文本编辑器和F12(转到定义)中没有红线正常工作。 但我无法编译它。

此外,项目似乎在每个其他开发人员之间失败。我告诉他们通过NuGET安装/重新安装SQLite,并且大部分时间都可以。

上次SQLite从1.0.98更新 - > 1.0.99和NuGET选择了最新版本导致所有其他项目中的版本发生冲突,我花了2天修复它,因为所有其他项目也被迫引用SQLite。使后一种方法无效。下次推出新版本会发生什么?

无论如何,像许多人一样神奇的问题:

Project setup

ChatService 在这种情况下是我想从 UnitTest 项目中引用的项目。 Lib 项目是包含SQLite设置的项目。当我从 BaseFrame 项目启动系统时,没有任何问题。但是,当我通过UnitTest项目开始时,即使我创建了一个新项目并尝试在SQlite EF中调用linq函数,我也能得到这个:

Magical new error

我怀疑它与群集版本或线程问题有关。现实是;我不明白为什么。

我怀疑线程问题是因为去年我遇到了不同的错误。看看这个:(还没有回复) Execution path 错误: Another mystery error

相同的功能在不同的上下文中失败。这种疯狂是什么?

哇,你做到这么远了吗?或者你只是跳过;)无论如何。总结一下问题:

  • 如果我引用了一个使用SQLite的项目,那个引用项目也必须引用SQLite。为什么?可以避免吗?
  • 为什么CodeFirst在一个项目中失败但在另一个项目中失败?
  • 为什么我打电话给CreateDb();通过按钮单击事件功能创建将失败?
  • 为什么SQLite如此难以使用?我应该用别的吗?

感谢。

0 个答案:

没有答案