Мне неожиданно сложно переключать поставщиков баз данных в EF6. Постоянная проблема заключается в том, что проект сохраняет старые ссылки даже после их полного удаления.
Пример: время от времени мне нужно переключаться с SQLCE на SQL и наоборот. Проект неизбежно откажется подключаться к новой базе данных, предлагая оправдание, которое выглядит примерно так:
Не найден поставщик Entity Framework для ADO. NET поставщик с неизменным именем 'System.Data .SqlServerCe.4.0 '.
В этом случае я пытаюсь переключиться с 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
- Удалил мои папки
bin
и obj
и восстановил
Тем не менее, после всего этого я все равно получаю ошибку:
Нет Найден поставщик Entity Framework для поставщика ADO. NET с инвариантным именем System.Data.SqlServerCe.4.0.
Где может быть эта ссылка? Как я могу обновить его, чтобы отразить новый SQL провайдер?
- РЕДАКТИРОВАТЬ -
Я изначально не упомянул, что использую Code First Migrations .