我发现在EF6中切换数据库提供者出乎意料的困难。始终存在的问题是,即使完全删除了旧项目,该项目仍会保留它们。
案例:我不时需要从SQLCE切换到SQL,反之亦然。不可避免地,该项目将拒绝连接到新数据库,这提供了这样的借口:
未找到具有不变名称'System.Data.SqlServerCe.4.0'的ADO.NET提供程序的实体框架提供程序。
在这种情况下,我正在尝试从SQLCE切换到SQL。
我尝试过的事情:
Imports
语句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
bin
和obj
文件夹并重建不过,尽管如此,我仍然收到错误消息:
未找到具有不变名称'System.Data.SqlServerCe.4.0'的ADO.NET提供程序的实体框架提供程序。
那个参考在哪里?如何更新它以反映新的SQL提供程序?
-EDIT-
最初我忽略提到我正在使用代码优先迁移。
我发现在EF6中切换数据库提供者出乎意料的困难。始终存在的问题是,即使完全删除了旧引用,该项目仍会保留它们。例...
[好,我想我知道这些尾随引用在哪里。