2017-10-07 65 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