实体框架 7,Visual Studio 2015,控制台命令不起作用



我使用的是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中吗?)。

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

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

最新更新