实体框架和 System.Data.SQLite 版本兼容性

如何解决实体框架和 System.Data.SQLite 版本兼容性

我有一个完美的 WPF 项目,基于 .Net FrameWork 4.0,具有以下依赖项:

EntityFramework v6.2.0
System.Data.sqlite v1.0.114.4
System.Data.sqlite.Core v1.0.114.3 
System.Data.sqlite.EF6 v1.0.114
System.Data.sqlite.Linq v1.0.114

以及一个sqlite/sql Server Compact ToolBox 相连的数据库

一切都很好,直到我决定在我的 Visual Studio 项目中包含以下额外的开源 WPF 类库: WPFMediaKit;它是用 .Net FrameWork 4.5 编写的,并且要求我的项目基于相同的 .Net FW 版本。

您可能已经意识到我可能遇到的问题:较新版本的实体框架、System.Data.sqlite 和 4.0 和 4.5 版本的 .Net FrameWorks 之间存在重大不兼容。

到目前为止我已经尝试过的:

  1. 将项目平台版本从 4.0 更改为 4.5、4.6 甚至 4.7.2。
  2. 删除所有组件依赖项。
  3. 从 NuGet 下载上述所有组件的新版本。
  4. 删除并尝试为我的 sqlite 数据库重新创建 ADO.NET 模型。
  5. 仅更改项目的 .Net Framework 版本,而不更改已安装的 sqlite/Entity Framework 版本。
  6. 安装新版本的 sqlite/sql Server Compact ToolBox 并使用 Visual Studio Server Explorer 添加 sqlite 连接,而无需 sqlite Server Compact 工具箱。

好的,这就是步骤 1、2 和 3 的问题: ADO.NET 模型是使用旧版本的 Entity Framework 创建的,我不能对新旧版本的 E.F. 使用相同的 .edmx 数据模型 – VS 错误列表。

重新创建 ADO.NET 模型时第 4 步的问题

"system.invalidCastException"
"[A]System.Data.sqlite.sqliteConnection 
cannot be cast to
[B]System.Data.sqlite.sqliteConnection. 
Type A originates from 'System.Data.sqlite,Version=1.0.109.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139' in the context 'Default' at 
location ...
Type B originates from 'System.Data.sqlite,Version=1.0.114.0,...

第五步的问题是Entity Framework的版本可能是绑定到.Net Framework版本的,不能独立使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?