Entity Framework, DBContext использует некорректный provider
Есть проблема с созданием подключения, во время инициализации DbContext появляется ошибка
Keyword not supported:'server'[System.Data.SqlServerCe.SqlCeConnectionStringBuilder.GetIndex()].
Такое ощущение, что приложение использует провайдер System.Data.SqlServerCe вместо System.Data.SqlClient.
Я пытался по разному указывать строку подключение, добавил как в примере DbProviderFactories (может быть не правильно), но все равно получаю ту же самую ошибку.
Уточнение, это не совсем приложение, а плагин к приложению, поэтому я не могу задать строку подключения и провайдера в config, только в коде. На одном компьютере работает подключение к базе данных, а на другом нет. Видимо другой плагин настроил провайдера раньше. Поэтому искал еще как поменять провайдера или указать явно.
public class DbSBMSContext: DbContext
{
public DbSBMSContext()
: base(GetConnection(), true)
{
}
public static DbConnection GetConnection()
{
var factory = DbProviderFactories.GetFactory("System.Data.SqlClient");
var connection = factory.CreateConnection();
connection.ConnectionString = @"Server=MDMSQL;" +
"initial catalog=SBMS;" +
"integrated security=True;" +
"MultipleActiveResultSets=True;" +
"App=EntityFramework;";
return connection;
}
}
Ответы (1 шт):
Большое спасибо @Alexander Petrov!
Проблема решилась с помощью создания SqlConnection.
private static string ConnectString = @"data source=MDMSQL;" +
"initial catalog=SBMS;" +
"integrated security=True;" +
"MultipleActiveResultSets=True;" +
"App=EntityFramework;";
public DbSBMSContext()
: base(GetConnection(), true) {}
public static DbConnection GetConnection()
{
DbConnection dbConnection = new SqlConnection(ConnectString);
return dbConnection;
}