2017-10-07 91 views
0

我有一個新的asp.net核心2.0項目,我試圖通過遷移的方式將我的數據庫上下文存儲到數據庫現在我有通過NuGet安裝的應該在那裏的依賴關係。EF核心2.0第一次設置數據庫上下文

這是我的DbContext

public class SolitudeDBContext : DbContext 
{ 
    public SolitudeDBContext(DbContextOptions options) : base(options) { } 
    public virtual DbSet<OrderHeader> OrderHeader { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 

     modelBuilder.HasDefaultSchema(schema: SchemaName.Portal); 

     base.OnModelCreating(modelBuilder); 
    } 

    public override int SaveChanges() 
    {   
     return base.SaveChanges(); 
    } 
} 

我的AppSettings在那裏我存儲我的默認連接。

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "Server=DESKTOP-JHIMUM4\\SQLEXPRESS2014;Database=solitude;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 

"Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
    "Default": "Warning" 
    } 
} 
} 

我一直在使用

PM> DOTNET EF遷移被添加firstDatabase

但是,即使你可以看到 引用也安裝在模型下面的錯誤被拋出我有項目組固定爲 。 dotnet:沒有可執行文件找到匹配命令「dotnet-ef」在 line:1 char:1 + dotnet ef migrations add firstDatabase + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(無可執行F的和 「DOTNET-EF」:字符串)[],的RemoteException + FullyQualifiedErrorId:NativeCommandError

我的項目文件

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    </ItemGroup> 

    <ItemGroup> 
    <Folder Include="Models\products\" /> 
    <Folder Include="Models\stock\" /> 
    </ItemGroup> 

</Project> 

項目後第二個編輯:

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
    </PropertyGroup> 

    <ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
    </ItemGroup> 


    <ItemGroup> 
    <Folder Include="Models\products\" /> 
    <Folder Include="Models\stock\" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" /> 
    </ItemGroup> 

</Project> 
+0

你的包管理器控制檯,'dotned'是[命令窗口指令(https://docs.microsoft.com/en-us/aspnet/核心/數據/ EF-MVC /遷移)。或者按照[本演練](https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db)。 –

+0

@GertArnold該指南是針對.net核心我正在使用.net核心2有差異 – rogue39nin

回答

0

您需要將Microsoft.EntityFrameworkCore.Tools.DotNet作爲DotNetCliToolReference而不是軟件包引用添加。這將使dotnet-ef可用命令:

<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" /> 
</ItemGroup> 
+0

我仍然得到上述錯誤 – rogue39nin

+0

我添加了修改後的文件,並在上面編輯我仍然得到相同的錯誤 – rogue39nin

+0

你運行'dotnet首先恢復? – poke