首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLCE 4私有部署实体框架6

SQLCE 4私有部署实体框架6
EN

Stack Overflow用户
提问于 2014-10-16 17:57:06
回答 1查看 394关注 0票数 0

我试图首先使用代码使用实体框架6私下部署SQL。

在开发机器数据库中,AppData文件夹中生成很好的数据,所有这些都可以正常工作,但是在测试PC时,我得到了一个异常(无db):

代码语言:javascript
复制
"The ADO.NET provide with invariant name 'System.Data.SQlServerCe.40' is either not registered in the machine or application config file'

我试图实现所有关于这个问题的现有文献,但仍然有一个问题。我已经用部署的文件夹检查了Bin文件夹,它是相同的,所有的库(x86和amd64)都存在,项目平台的目标是x86。

  1. No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlServerCe.4.0'
  2. 25.html
  3. Entity Framewok Code First "ADO.NET provider not found" with local SQL Server CE DLL's

贝娄是我的App.config

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>

  <entityFramework>
    <contexts>
      <context type="MyProject.DAL.GreatContext, MyProject">
        <databaseInitializer type="MyProject.Module.Database.Dal.GreatDbInitializer, MyProject" />
      </context>
    </contexts>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
    </providers>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="System.Data.SqlServerCe.4.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>

  <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>


</configuration>

我还添加了下面的代码,但问题仍然存在:

代码语言:javascript
复制
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-16 18:36:23

假设使用ado.net提供程序的版本4、0、0、1,则需要使用此程序集重定向:

代码语言:javascript
复制
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
    <bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
  </dependentAssembly>
</assemblyBinding>

重定向Entityframework.dll将无法工作。

正确的解决方案是使用我的EntityFramework.SqlServerCompact.PrivateDeployment NuGet包

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26410892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档