Azure函数连接字符串与数据库第一个approch与Entity Framework

时间:2017-10-23 08:52:17

标签: entity-framework azure azure-functions

我有一个Azure函数,它使用数据库第一个方法连接字符串。连接字符串位于local.settings.json文件中,该文件包含敏感数据。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
  },
  "ConnectionStrings": {
    "MyConnectionString": "data source=localhost\\sqlexpress;initial catalog=SampleQrCodes;user id=sa;password=****;MultipleActiveResultSets=True;App=EntityFramework"
  }
} 

如果我尝试删除providerName,它会给我以下异常:

  

在Code First模式中使用上下文,其中包含从EDMX文件生成的用于Database First或Model First开发的代码。这将无法正常工作.....你将它传递给一个采用DbConnection的基础DbContext构造函数

实际连接字符串(从EF生成):

<add name="DataContext" connectionString="metadata=res://*/EFModel.csdl|res://*/EFModel.ssdl|res://*/EFModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost\sqlexpress;initial catalog=SampleQrCodes;user id=sa;password=***;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

以下是类似问题Load Connection String from Config File in Azure Functions,但是如果通过数据库优先方法在local.settings.json中定义此连接字符串对我不起作用?

1 个答案:

答案 0 :(得分:1)

根据您的描述,这里是类似的git hub issue。根据我的测试,您可以在 local.settings.json 文件中配置连接字符串,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<TestData>
  <Environment>GE1</Environment>
  <URL>ApplicationURL</URL>
  <DCN>1060352</DCN>
  <TaxExceptDCN></TaxExceptDCN>
  <DOMS>100013010</DOMS>
  <Role>DHS - Order Processor Mexico</Role>
  <OPRole>DHS - APOS Sales Manager Mexico</OPRole>
  <Buid>Mexico</Buid>
</TestData>

要部署到azure函数,您可能需要修改DbContext。更多细节,你可以参考这个类似的issue