gpt4 book ai didi

c# - 构建存储库时的 Entity Framework Core 工具

转载 作者:行者123 更新时间:2023-11-30 12:41:10 24 4
gpt4 key购买 nike

我正在尝试在数据存储库中使用 Entity Framework Core,但我无法让 EF 创建数据库。

在以前的 EF 版本中,这一切都是自动发生的,如果数据库不存在,EF 会在第一次尝试对数据执行任何操作时创建数据库。

现在,我在文档中找到了使用 EF 迁移的说明。说明是安装依赖项和工具:

  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Tools

要运行 dotnet ef migrations 添加 MigrationNamedotnet ef database update

现在事情来了。在构建存储库时,我有一个项目 AppName.Data 用于实现存储库,还有一个项目 AppName.WebApi 用于使用存储库。

如果我尝试添加工具并从 AppName.Data 运行 dotnet ef 它不起作用,因为 AppName.Data 是一个图书馆。错误消息表明该工具只能在一个可执行应用程序的上下文中使用。

下一次尝试是从 AppName.WebApi 运行 dotnet ef,这是可执行的。现在 dotnet ef 工作了,但是如果我尝试 dotnet ef migrations add InitialMigration 来创建数据库,我会收到一个错误,因为 DbContext 不在AppName.WebApi 项目,但在另一个项目上。

我真的不知道该怎么做。因此,如果我希望 EF 创建数据库和所有这些,并且我想使用存储库,以便可执行项目上没有 EF 特定代码,我应该怎么做?

最佳答案

搜索之后,我在 the docs 上找到了,关于“Preview 2 Known Issues”,这是目前工具的一个限制。它确实需要一个可执行应用程序项目才能运行,因为它需要使用 dotnet run

文档还提供了解决方法。我更喜欢并且对我有用的是第一个解决方法。我们只需指向一个可执行的应用程序项目,通过项目路径传递 --startup-project

所以不是运行

dotnet ef migrations add MigrationName

我们跑

dotnet ef --startup-project pathToProject migrations add MigrationName

一切都按预期进行。

关于c# - 构建存储库时的 Entity Framework Core 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com