SQL Lite异常

7

我已经在我的应用程序中从 SQLLite 生成了我的模型,但是当我尝试调用 DBContext 时,它会抛出一个异常。

类型为 System.IO.FileLoadException 的异常发生在 mscorlib.dll 中,但未在用户代码中处理

附加信息:无法加载文件或程序集 'System.Data.SQLite.EF6, Version=1.0.93.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 或其依赖项之一。 找到的程序集清单定义与程序集引用不匹配。 (HRESULT 的异常:0x80131040)

请帮助我。


你的应用程序是Asp.Net、Windows Forms还是WP8? - Atilla Ozgur
3层架构,前端使用(MVC)Asp.net,数据从(Web API)中间层获取,Web API连接到(Class Library),其中SQL Lite连接到Code First。 - Joby James
@Joby 你看过这个网址吗?https://dev59.com/F3VD5IYBdhLWcg3wGHeu? - hagello
3个回答

0

我曾经也遇到过类似的问题。在我的情况下,我是从文件系统中添加了相同的dll,然后又有了一个nuget包,用于同一组件。

在您的情况下,我可以看到您有一个不同版本的nuget包“System.Data.SQLite.EF6.1.0.97.0”。 我会执行以下操作
a. 删除所有引用(如果有任何静态dll)。
b. 从nuget包添加引用。


顺便说一下,您发送的sln文件没有csproj文件(因此无法打开proj文件)。


0
在进入解决方案之前,让我向您解释一下您现在面临的错误: System.IO.FileLoadException

当找到托管程序集但无法加载时抛出的异常。

mscorlib

Microsoft Core Library,即它们是一切的核心。

Ref-Def-Mismatch

当存在与您要查找的内容不匹配的程序集时,会引发此异常。一个非常常见的不匹配是版本号,这就是这里的情况。

您应该清理配置并提供必要的Entity Framework提供程序。

更多参考资料在这里


0

控制您的WebApi和Asp.Net MVC项目的输出bin目录,以查看它们是否实际上有System.Data.SQLite.EF6.dll。

很可能它们没有这个dll,您需要为此dll设置Copy Local属性。


我在所有项目中都添加了这个dll,但仍然显示相同的错误。 - Joby James
分享我的测试应用程序 https://drive.google.com/file/d/0B3605vb89exzLW5DdnVEaTR5bWM/view?usp=sharing - Joby James

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