2017-02-03 470 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

相關問題