EF6中DbContext子类传连接字符串遇未知参数异常求助
解决EF6中DbContext构造函数连接字符串异常的方案
异常信息
System.InvalidOperationException : 未知的连接字符串参数
问题场景
继承自DbContext的ServiceTest类,构造函数通过以下方式传入连接字符串名称:
public ServiceTest() : base("sampleconnectionstring") { // some test code }
因应用存在多个DbContext,需传递连接字符串时触发上述异常。
解决步骤
检查配置文件中的连接字符串配置
确认app.config或web.config的<connectionStrings>节点下,存在名称为sampleconnectionstring的配置项,且格式正确:<connectionStrings> <add name="sampleconnectionstring" connectionString="Data Source=你的数据库地址;Initial Catalog=目标数据库名;Integrated Security=True;" providerName="System.Data.SqlClient" /> </connectionStrings>重点核对名称拼写、连接字符串参数、providerName(EF6需指定为
System.Data.SqlClient)。直接传入完整连接字符串时需指定数据库提供者
若不想依赖配置文件,直接传递完整连接字符串,需使用带提供者参数的构造函数重载:public ServiceTest() : base("Data Source=你的数据库地址;Initial Catalog=目标数据库名;Integrated Security=True;", System.Data.Entity.SqlServer.SqlProviderServices.Instance) { // test code }或者通过构建
DbConnection对象传入:using System.Data.SqlClient; public ServiceTest() : base(new SqlConnection("你的完整连接字符串"), contextOwnsConnection: true) { // test code }排查连接字符串参数拼写错误
检查连接字符串中的参数(如Data Source、Initial Catalog、Integrated Security等)是否存在拼写错误,避免因参数名错误导致EF无法识别。
内容的提问来源于stack exchange,提问作者yogesh kumar Firke
相关产品推荐
相关产品推荐

