【问题标题】:Can't add Entity Framework migrations when project is split拆分项目时无法添加实体框架迁移
【发布时间】:2015-11-12 16:15:27
【问题描述】:

我正在将一个项目从 MVC 5 移植到 MVC 6。我的项目有两个组件,一个是 MVC 应用程序本身,一个是其中包含所有数据库代码的程序集,包括所有数据库模型,以及 DbContext

在程序集中,我修改了 project.json 以拥有 ef 命令 dll 并将其从 MVC project.json 中删除。我已经移植了我所有的模型等,并且应用程序正在编译而没有错误。我要执行

dnx ef migrations add

来自项目中程序集子目录中的命令外壳。当我这样做时,我得到了

未找到 DbContext。确保您使用的是正确的程序集,并且该类型既不是抽象的也不是泛型的。

完成此类项目组织的正确方法是什么?

【问题讨论】:

    标签: entity-framework asp.net-core-mvc


    【解决方案1】:

    确保从具有 EF 命令和 DBContext 的 project.json 运行此命令。您将无法从 artifacts 文件夹中运行它,因为像 ef 这样的 dnx 自定义命令是在每个 project.json 的基础上注册的。

    如果您还没有使用最新的测试版,这是一个很好的机会在 beta8 上再次尝试以确保一切正常。

    PS:不仅仅是dnvm upgrade,还有tooling

    如果没有任何效果,请查看this 其他问题。您将需要一个 Startup.cs,但它不需要特别运行任何东西。它只需要能够配置依赖项。

    【讨论】:

    • 我正在使用 beta8。我有两个项目,一个是 MVC,一个是称为“存储库”的普通程序集。 ef 命令程序集位于“存储库”程序集中。我从“存储库”程序集目录运行命令。它给出了错误消息“在程序集'STOrm.Repository'中找不到名为'StartupDevelopment'或'Startup'的类型。”。如果我从 MVC 项目运行它,它会在我的原始帖子中给出错误。不知道如何使这项工作。同样的场景也适用于 EF6。
    • 用这个问题的信息更新了我的答案:stackoverflow.com/a/32799213/24975
    • 解决了这个问题。现在完全有道理,虽然如果你问我有点奇怪
    • 这很奇怪,但they are aware of the issue。它似乎已关闭,但他们在跟踪此场景和其他场景时遇到了多个问题。
    猜你喜欢
    • 2020-10-23
    • 2018-11-17
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2013-04-02
    • 2019-02-25
    相关资源
    最近更新 更多