如何彻底摆脱持久性EF6提供者引用的项目?

问题描述 投票:0回答:1

我发现在EF6中切换数据库提供者出乎意料的困难。始终存在的问题是,即使完全删除了旧项目,该项目仍会保留它们。

案例:我不时需要从SQLCE切换到SQL,反之亦然。不可避免地,该项目将拒绝连接到新数据库,这提供了这样的借口:

未找到具有不变名称'System.Data.SqlServerCe.4.0'的ADO.NET提供程序的实体框架提供程序。

在这种情况下,我正在尝试从SQLCE切换到SQL。

我尝试过的事情:

  • 已删除所有SQLCE软件包和相关的Imports语句
  • 已清理项目/解决方案
  • 重新启动Visual Studio
  • 使用TextPad在项目文件夹/子文件夹层次结构中搜索与SQLCE相关的任何内容,并删除找到的所有内容
  • 删除了我的App.config文件(一个完全没有任何App.config的干净的新项目就可以了,]
  • 使用此App.config文件:
<?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" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>
  • 使用此代码:
Imports System.Data.Entity
Imports System.Data.Entity.SqlServer
Imports System.Data.Entity.Infrastructure

Friend Class DbProviderConfig
  Inherits DbConfiguration

  Public Sub New()
    Me.SetDefaultConnectionFactory(New SqlConnectionFactory(SqlProviderServices.ProviderInvariantName))
    Me.SetProviderServices(SqlProviderServices.ProviderInvariantName, SqlProviderServices.Instance)
  End Sub
End Class
  • 删除了我的binobj文件夹并重建
  • 不过,尽管如此,我仍然收到错误消息:

未找到具有不变名称'System.Data.SqlServerCe.4.0'的ADO.NET提供程序的实体框架提供程序。

那个参考在哪里?如何更新它以反映新的SQL提供程序?

-EDIT-

最初我忽略提到我正在使用代码优先迁移。

我发现在EF6中切换数据库提供者出乎意料的困难。始终存在的问题是,即使完全删除了旧引用,该项目仍会保留它们。例...

sql-server entity-framework sql-server-ce visual-studio-2019
1个回答
0
投票

[好,我想我知道这些尾随引用在哪里。

© www.soinside.com 2019 - 2024. All rights reserved.