加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 构建存储库时的实体框架核心工具

发布时间:2020-12-15 22:34:12 所属栏目:百科 来源:网络整理
导读:我正在尝试在数据存储库中使用Entity Framework Core,但是我很难让EF创建数据库. 在EF的先前版本中,它全部自动发生,如果在第一次尝试对数据执行任何操作时不存在,则EF创建数据库. 现在,我在文档中似乎有使用EF迁移的指令.说明是安装依赖项和工具: Microsoft
我正在尝试在数据存储库中使用Entity Framework Core,但是我很难让EF创建数据库.

在EF的先前版本中,它全部自动发生,如果在第一次尝试对数据执行任何操作时不存在,则EF创建数据库.

现在,我在文档中似乎有使用EF迁移的指令.说明是安装依赖项和工具:

> Microsoft.EntityFrameworkCore.Design
> Microsoft.EntityFrameworkCore.Tools

要运行dotnet ef迁移,请将MigrationName与dotnet ef数据库更新一起添加.

现在来了.当我正在构建一个存储库时,我有一个项目AppName.Data,其中存储库被实现,一个项目AppName.WebApi,其中存储库被使用.

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

接下来的尝试是从AppName.WebApi运行dotnet ef,这是可执行的.现在dotnet ef工作但是如果我尝试使用dotnet ef迁移添加InitialMigration来创建数据库我得到一个错误,因为DbContext不在AppName.WebApi项目上,而是在另一个项目上.

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

解决方法

在搜索之后,我在 the docs上发现了“预览2已知问题”,这是目前工具的限制.它确实需要一个可执行的应用程序项目才能运行,因为它需要使用dotnet运行.

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

所以不要跑步

dotnet ef migrations add MigrationName

我们跑

dotnet ef --startup-project pathToProject migrations add MigrationName

一切都按预期工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读