【发布时间】:2016-07-22 20:29:04
【问题描述】:
我正在尝试在数据存储库中使用 Entity Framework Core,但我无法让 EF 创建数据库。
在之前的 EF 版本中,这一切都是自动发生的,如果在第一次尝试对数据执行任何操作时,如果数据库不存在,EF 就会创建数据库。
现在,我在文档中看到了使用 EF 迁移的说明。说明是安装依赖和工具:
- Microsoft.EntityFrameworkCore.Design
- Microsoft.EntityFrameworkCore.Tools
并将dotnet ef migrations add MigrationName 与dotnet 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 特定代码,我应该怎么做?
【问题讨论】:
-
在包管理器控制台中,指向applicationdbcontext所在的项目,然后运行它。
标签: c# .net entity-framework entity-framework-core .net-core