我有一个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="data source=localhost\sqlexpress;initial catalog=SampleQrCodes;user id=sa;password=***;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
以下是类似问题Load Connection String from Config File in Azure Functions,但是如果通过数据库优先方法在local.settings.json
中定义此连接字符串对我不起作用?
答案 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。