2017-02-03 464 views
0

我正在使用EF Core,我试图从数据库中生成模型。我创建了一个单独的ASP.NET核心Web应用程序,因为从类库中生成它并不适合我。EF核心数据库第一种方法:Scaffold-DbContext未被识别为cmdlet的名称

我已经从数据库成功生成了几次实体类,但突然停止工作。这真的很奇怪,因为我不是第一次,而且我也没有改变什么,是什么导致它停止工作?

这是project.json:

{ 
    "dependencies": { 
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0", 
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Routing": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", 
    "Microsoft.NETCore.App": { 
     "version": "1.1.0", 
     "type": "platform" 
    }, 
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0" 
    }, 

    "tools": { 

    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    } 
} 

这是命令:

Scaffold-DbContext "Server= myserver;Database=db;User Id=sa;Password=pass;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir EntityModels 

的错误:

Scaffold-DbContext : The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the 
name, or if a path was included, verify that the path is correct and try again. 
At line:1 char:1 
+ Scaffold-DbContext "Server=myserver;Database=db... 
+ ~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (Scaffold-DbContext:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

我重新启动视觉工作室和问题依然存在。

回答

0

dependencies版本不同于tools

dependencies

"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",

而且从tools

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",

+0

我100%肯定这是工作与那些包裹。我试图改变它,因为你提到,它给了另一个错误:'System.AggregateException:发生一个或多个错误。 (尝试方法'Microsoft.EntityFrameworkCore.Scaffolding.Configuration.Internal.ModelConfiguration.get_EntityConfigurations()'以访问方法'Microsoft.EntityFrameworkCore.Metadata.Internal.EntityTypeNameComparer..ctor()'失败。)---> System.MethodAccessException :尝试按方法'Microsoft.EntityFrameworkCore.Scaffolding.Configuration.Internal.ModelConfiguration.get_EntityConfigurations()' – Coding

+0

请参阅EF 1.1发行说明[此处](https://blogs.msdn.microsoft.com/dotnet/2016/11/ 16/announcing-entity-framework-core-1-1 /)并向下滚动到“升级工具包” - 您可能需要使用“Microsoft.EntityFrameworkCore.Tools.DotNet”工具。 – steamrolla

+0

谢谢,但没有奏效。但是,同一个项目仍在另一台机器上工作。 – Coding

相关问题