如何在Azure函数中为EF Core 2.1使用连接字符串

时间:2018-07-12 14:32:36

标签: entity-framework-6 azure-functions ef-core-2.0

使用Entity Framework 6+时,我可以让一个类继承这样的DbContext形式

MyContext : DbContext

然后我可以使用像这样的代码

using (var context = new MyContext())
        {
        ...
        }

只要我有一个配置文件,其连接字符串设置的名称相同,就会由Entity Framework提取。非常适合不同的环境。

现在,我正在使用在.NET CORE,.NET STANDARD和Entity Framework Core 2.1上运行的Azure函数

但是我不知道该如何实现。即使在Azure Function应用程序中有一个专用于ConnectionStrings的部分,我也希望local.seeting.json具有这样的输入

  {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
      },
      "ConnectionStrings": {
        "MyContext": "Server=(localdb)\\mssqllocaldb;Database=MyContext;Trusted_Connection=True;ConnectRetryCount=0"
      }
    } 

应该做同样的事情。但是不。

我能找到的所有示例都是必须将DbContextOptionsBuilder或连接字符串注入构造函数的地方。

但是由于它是Azure Function,并且DI框架不能很好地发挥它的作用,所以我宁愿避免将连接字符串或db上下文一直传递到各个层。

简而言之:EF Core不能从文件本身获取设置吗?

0 个答案:

没有答案