如何在Azure Functions中使用Entity Framework Core

时间:2019-12-17 11:59:51

标签: c# entity-framework-core azure-functions

我正在尝试使用Azure Functions(Http触发器)制作一个简单的Web API。
在我的函数中,我想访问一个SQL Server数据库。
我想使用Entity Framework Core从数据库中检索数据。
我希望在发布此信息时使用可用的最新版本:

  • 实体框架核心3.1.0
  • Azure Functions v3(.NET Core)

我有一个现有的数据库,因此我想使用Scaffold-DbContext命令进行逆向工程。
为此,我将以下程序包添加到了在Visual Studio中创建的Azure Functions v3项目中:

  • Microsoft.EntityFrameworkCore.SqlServer(3.1.0)
  • Microsoft.EntityFrameworkCore.Tools(3.1.0)

在程序包管理器控制台中运行Scaffold-DbContext命令时,出现以下错误:

enter image description here

我在做什么错了?
我该怎么做才能解决此问题?

2 个答案:

答案 0 :(得分:0)

对于thr错误,请尝试添加

<PropertyGroup>               
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

到您的.csproj文件。测试是否可以解决。

如果不起作用,请尝试在相同的解决方案下创建一个新项目,然后在该项目中运行实体框架命令。那应该工作。然后将该项目导入到您的第一个项目,这似乎是azure函数的问题。

答案 1 :(得分:0)

我找到了解决问题的方法。

在生成项目时,将生成项目dll到 bin \ Debug \ netcoreapp3.0 \ bin 文件夹中,但是当您尝试运行Scaffold-DbContext命令时,它将在 bin中寻找它\ Debug \ netcoreapp3.0 文件夹。

解决方案。只需将项目dll复制到该文件夹​​,然后它就可以工作。