我正在尝试构建一个解决方案体系结构,在其中引用一个.net项目,其中包含我需要使用Npgsql提供程序连接到Postgres数据库的实体框架ORM所需的所有代码。
引用此类项目并进行查询可在控制台应用程序中运行,而不能在azure函数项目中使用。
Here is a link to a solution包含重现此错误所需的所有内容。在ConsoleApp1
中,使用了对eftest
的引用,该引用将完整运行而不会出错。
名为FunctionApp3
的项目是失败的情况。一个面向.net Framework 4.71的全新天蓝色函数项目,引用eftest
项目并对其进行查询。如果您尝试该项目,则you will get this error。
当然,当您实际安装Npgsql 4.0.2
软件包时,它非常渴望,因此changes to this error.
我认为这是绑定重定向的问题。因此我添加了一个app.config,类似于控制台应用程序中现有的一个。原来是azure functions cant use app.config files,所以我无法在连接字符串中设置绑定重定向或providerName
属性。据我所知,keyword port not supported
是由于未在连接字符串中设置providerName引起的。
Here is a log of the full rebuild of the azure function project.
问题:如何使这个实体框架项目与azure函数项目一起工作?
答案 0 :(得分:2)
@ grek40通过将ProviderName
作为属性放置在settings.json中提供了第二个错误的解决方案。
更新了settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"AzureWebJobsDashboard": ""
},
"ConnectionStrings": {
"DefaultConnection": {
"ConnectionString": "Server=localhost;Port=5432;Database=ef-azf-ca-testdatabase;User Id=postgres;Password=postgres;Pooling=true;Max Auto Prepare=10;Auto Prepare Min Usages=1;"
"ProviderName": "Npgsql"
}
}
}
对于第一个问题,我不知道为什么我不能使用Npgsql版本4.0.3,但是没关系,因为我只能使用4.0.2。帮助我们Roji,您是我们唯一的希望。