EF6 向DbContext传递连接字符串。System.ArgumentException: 'Keyword not supported: 'provider'.'

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

我试图通过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)
    {

    }
c# entity-framework entity-framework-6 connection-string argumentexception
1个回答
0
投票

对于任何可能遇到这个错误的人。原来我必须在所有要引用我的仓库dll的项目上安装EF6包。

一旦包安装在所有需要它的项目上,我只传递了连接字符串。没有任何特殊的格式化,也没有提供Provider信息。

Data Source=DataSource;Initial Catalog=InitialCatalog;User ID=UserID;Password=Password
© www.soinside.com 2019 - 2024. All rights reserved.