gpt4 book ai didi

C# 程序正在寻找 sql server compact 3.5,但我使用的是 4.0

转载 作者:太空狗 更新时间:2023-10-29 22:26:18 25 4
gpt4 key购买 nike

好吧,这个真的让我很困惑,如果问题的标题没有准确描述我的问题是什么,我深表歉意。

我有一个用 C# 编写的程序,使用 Entity Framework 和 SQL Server CE。我在 Windows 7 上开发它,它运行良好。我也有一台我测试过的 Windows 8.1 机器,它也能正常工作。

但是,在少数 Windows 8.1 计算机上,程序在尝试访问数据库时立即崩溃。我收到以下错误:

Unhandled Exception: System.InvalidOperationException: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlServerCe.3.5'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

现在,这真的让我感到困惑,因为我在我的项目 (4.0) 上安装了用于 SQL Server CE 的最新 NuGet 包。我使用 SQL Server CE 工具箱显式创建了一个 SQL Server CE 4.0 数据库,我随应用程序分发了 4.0 dll,并且我在 my app.config 文件中明确列出了 4.0 版( invariantName="System.Data.SqlServerCe.4.0")。

那么,为什么错误会显示 System.Data.SqlServerCe.3.5?为什么这个错误只发生在几台 Windows 8.1 机器上?

(我还搜索了我的整个解决方案,文本“3.5”甚至没有出现在任何地方。)

我发现了类似的错误,并且我尝试(从 this question )包括这个:

private volatile Type _dependency;

public MyClass()
{
_dependency = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
}

没有效果,我仍然得到相同的确切答案。

无论如何,如果有人有任何想法,我将不胜感激。

最佳答案

我认为问题出在您的系统中安装了两个 SQL Server CE 组件。

我的解决方案:

<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.3.5" />
<remove invariant="System.Data.SqlServerCe.4.0" />

<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>

关于C# 程序正在寻找 sql server compact 3.5,但我使用的是 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25076351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com