【问题标题】:Entity framework 7, visual studio 2015, console commands don't work实体框架 7,Visual Studio 2015,控制台命令不起作用
【发布时间】:2015-12-02 12:34:18
【问题描述】:

我正在使用带有个人用户帐户的 ASP.NET 5 Web 应用程序模板(使用 EF7 和 MVC 6),我遇到以下问题:

当我将自己的 DBSet 添加到 ApplicationDbContext 类中,然后转到尝试使用这个新 DBSet 的页面时,它不起作用,我得到了这个:

A database operation failed while processing the request.
SqlException: Invalid object name 'WallMessageModel'. 

There are pending model changes for ApplicationDbContext
Scaffold a new migration for these changes and apply them to the database from the command line:

 dnx . ef migration add [migration name] 
 dnx . ef migration apply

现在,当我运行这些命令或我得到的任何“dnx”命令时:

CategoryInfo          NotSpecified: Error: Unable t...stemindsWebsite:String, RemoteException    FullyQualifiedErrorId : NativeCommandError

如果我试图运行任何“k”命令我得到:

CategoryInfo          : ObjectNotFound: k:String, CommandNotFoundException    FullyQualifiedErrorId : CommandNotFoundException

我正在使用"EntityFramework.SqlServer": "7.0.0-beta5", "EntityFramework.Commands": "7.0.0-beta5"

我尝试使用 7.0.0-* 版本,但它仍然不适合我。你能告诉我我做错了什么吗?

基本上,我认为我的机器上没有正确安装 EF 命令(通过 Visual Studio 2015/PowerShell)。但是,似乎没有任何参考资料显示如何安装这些(使用 EF7 时不应该将它们内置到 VS2015 中吗?)。

【问题讨论】:

  • 安装最新的候选版本 RC1。不要乱用beta5。发生了太多变化。
  • 你能澄清一下吗?您使用的是哪个“控制台”?包管理器控制台?命令提示符?

标签: c# visual-studio-2015 asp.net-core-mvc entity-framework-core


【解决方案1】:

当您将另一个 DbSet 添加到您的 ApplicationDbContext 类或添加/修改任何其他现有实体类时,您的运行时模型会从数据库模型更改。因此,您需要构建一个新的迁移并将其应用于数据库,以便两个模型彼此同步。正如异常消息所暗示的,您应该运行这些命令来执行此操作。

对于那些未运行的命令(或任何其他 dnx 命令),dnx 命令未在 VS2015 中内置。它们来自 Microsoft ASP.NET 和 Visual Studio 的 Web 工具扩展。请确认您已为您的 VS 安装了它。这将使您能够运行 dnx 命令。 k 是一个非常古老的术语,它被重命名为 dnx。 beta5也是老版本,最新版本是RC1,它有更多的功能。有关如何安装和使用 Web Tools 的详细信息,请访问https://get.asp.net/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2023-03-31
    • 2016-09-25
    • 2015-10-16
    • 1970-01-01
    相关资源
    最近更新 更多