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

时间:2015-12-02 12:34:18

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

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

1 个答案:

答案 0 :(得分:1)

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

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