【问题标题】:EF Core 2.0 Setting up DB Context first timeEF Core 2.0 第一次设置数据库上下文
【发布时间】:2017-10-09 02:06:49
【问题描述】:

我有一个新的 asp.net core 2.0 项目,我试图通过迁移的方式将我的数据库上下文存储到数据库中,现在我通过 NuGet 安装了应该存在的依赖项。

这是我的 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();
    }
}

我存储默认连接的应用设置。

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

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

我一直在用

PM> dotnet ef 迁移添加第一个数据库

但是即使您可以看到以下错误也会引发 参考也安装在模型中我将项目组固定为 出色地。 dotnet:找不到与命令“dotnet-ef”匹配的可执行文件 行:1 字符:1 + dotnet ef 迁移添加 firstDatabase + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (No executable f...and "dotnet-ef":String) [], 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>

【问题讨论】:

标签: c# entity-framework ef-core-2.0


【解决方案1】:

您需要将Microsoft.EntityFrameworkCore.Tools.DotNet 添加为DotNetCliToolReference 而不是包引用。这将使dotnet-ef 命令可用:

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

【讨论】:

  • 我仍然收到上述错误
  • 我添加了修改后的文件并在上面编辑我仍然得到同样的错误
  • 你先运行dotnet restore了吗?
猜你喜欢
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
相关资源
最近更新 更多