EF6 Передача строки подключения в DbContext: System.ArgumentException: «Ключевое слово не поддерживается:« поставщик ». - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь передать строку подключения классу DbContext через его конструктор, но продолжаю получать это исключение. System.ArgumentException: 'Keyword not supported: 'provider'.'

Основываясь на других сообщениях stackoverflow, я получаю строку подключения таким образом.

public string GetConnection()
{
    SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
    sqlBuilder.DataSource = "DataSource";
    sqlBuilder.InitialCatalog = "InitialCatalog";
    sqlBuilder.UserID = "UserID";
    sqlBuilder.Password = "Password";

    EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder()
    {
        Provider = "System.Data.SqlClient",
        ProviderConnectionString = sqlBuilder.ToString()
    };

    return entityString.ConnectionString;
}

Это то, что создается (фактические учетные данные заменяются фиктивными данными)

provider=System.Data.SqlClient;provider connection string="Data Source=DataSource;Initial Catalog=InitialCatalog;User ID=UserID;Password=Password"

Это конструктор класса DBContext

    public CustomerContext(string connectionString) : base(connectionString)
    {

    }

1 Ответ

0 голосов
/ 06 мая 2020

Для тех, кто может столкнуться с этой ошибкой. Оказывается, мне пришлось установить пакеты EF6 во всех проектах, которые собирались ссылаться на мою dll репозитория.

После того, как пакеты будут установлены во всех проектах, которые в этом нуждаются, я передал только строку подключения. Без какого-либо специального форматирования или предоставления информации о поставщике.

Data Source=DataSource;Initial Catalog=InitialCatalog;User ID=UserID;Password=Password
...