实体Framewok代码首先使用本地SQL Server CE DLL"找不到ADO.NET提供程序"

 逺續ken_372 发布于 2023-02-10 15:22

我正在编写一个使用SQL Server CE 4.0文件的C#应用​​程序,这些文件可以通过代码优先通过Entity Framework 6.0访问.(应用程序需要能够使用本地dll进行SQL Server CE连接,即应用程序需要可以部署XCOPY).应用程序在我的开发机器上运行良好,但在其他机器上(例如只有Win7和.NET 4.0的VM),我得到一个ArgumentException:

具有不变名称"System.Data.SqlServerCe.4.0"的ADO.NET提供程序未在计算机或应用程序配置文件中注册,或者无法加载.有关详细信息,请参阅内部异常

内部异常消息说:

无法找到请求的.Net Framework数据提供程序.它可能没有安装.

我搜索过Google和SO,大多数评论表明确保App.config文件正确无误.我相信我的(默认连接工厂和提供商部分),但这里是内容:



  
    

build文件夹包含以下文件(当然还有特定于应用程序的文件):

EntityFramework.dll

EntityFramework.xml

EntityFramework.SqlServer.dll

EntityFramework.SqlServer.xml

EntityFramework.SqlServerCompact.dll

EntityFramework.SqlServerCompact.xml

在每个amd64和x86子文件夹中都有以下文件:

sqlceca40.dll

sqlcecompact40.dll

sqlceer40EN.dll

sqlceme40.dll

sqlceqp40.dll

sqlcese40.dll

我确定该程序在开发机器上运行,因为已经安装了SQL Server CE,但是如何在其他机器上使用本地SQL Server CE dll来运行它?

2 个回答
  • 我今天也面临着同样的问题。
    几次重新安装EF之后,解决我问题的方法是在Console项目中与DAL项目(实际上使用EF的项目)一起引用EF。

    如果您使用的引用又引用了EF,则也必须将其添加到该项目中。

    2023-02-10 15:26 回答
  • 见http://tech.aendeavors.com/2011/06/09/bin-deploy-sqlce-4-0-and-ef-4-1/

    您可能缺少的相关内容似乎是:

    确保引用System.Data.SqlServerCe并在属性中将其设置为"Copy local".

    将以下内容添加到app.config:


    <system.data>
        <DbProviderFactories>
          <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.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
        </DbProviderFactories>
    </system.data>
    

    2023-02-10 15:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有