.net core .NET核心Azure函数和实体框架6未正确解释local.settings.json中的ConnectionString

.net core .NET核心Azure函数和实体框架6未正确解释local.settings.json中的ConnectionString,.net-core,entity-framework-6,azure-functions,.net Core,Entity Framework 6,Azure Functions,我有一个.NET 4.x库,它被ASP.NET 4.x webapp和.NET Core 3.x Azure函数引用。此库中有一个EF6 DbContext派生类,其构造函数如下: public MyContext() : base("DefaultConnection") { } <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDatabase;Inte

我有一个.NET 4.x库,它被ASP.NET 4.x webapp和.NET Core 3.x Azure函数引用。此库中有一个EF6 DbContext派生类,其构造函数如下:

public MyContext() : base("DefaultConnection") { }
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
"ConnectionStrings": {
      "DefaultConnection": "Data Source=.\\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True"
    }
当然,dotnet4webapp的web.config中定义了一个“DefaultConnection”连接字符串。此连接字符串指向SQL Express的本地实例,如下所示:

public MyContext() : base("DefaultConnection") { }
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
"ConnectionStrings": {
      "DefaultConnection": "Data Source=.\\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True"
    }
我还尝试了ConnectionString的强类型版本,分别显式定义了ConnectionString和ProviderName,但没有效果

我遇到的问题是,通常在dotnetcore下的Azure函数上下文中运行时,连接字符串名称在传递到构造函数时不会被识别,而是被视为默认目录。这是函数最终构思的连接字符串:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=DefaultConnection;Integrated Security=True;MultipleActiveResultSets=True"
…尽管在代码库中的任何地方都没有引用localdb。如果我将DbContext构造函数更改为:

public MyContext() : base("RatFink") { }
上下文使用的连接字符串为:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=RatFink;Integrated Security=True;MultipleActiveResultSets=True"
如果我将实际的连接字符串传递到对
base()
的调用中,它会被识别为实际连接字符串,并且一切正常,但这需要对引用的库进行代码更改,这并不理想


为什么在Azure函数/.NET Core的上下文下,连接字符串名称无法识别并无法从local.settings.json读取?我如何解析?

是否要从Azure函数启动访问连接字符串的值?这是您的要求吗>您想从azure函数启动访问连接字符串的值吗?这是您的要求吗>