.NET实体框架核心

时间:2018-04-08 04:38:01

标签: c# entity-framework .net-core entity-framework-core csproj

我已经阅读了过去两年发布的关于EF的几乎所有其他问题。下载其他软件包没有问题,它只是不能为我安装的实体框架。

我甚至尝试安装最新版本的Nuget并在我的项目目录中使用它的工具来恢复包 - 后来我将这行添加到我的.csproj中:

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

首先我尝试了这个命令:

dotnet restore

输出:

C:\Path\To\My\Project>dotnet restore
Restore completed in 100.41 ms for C:\Path\To\My\Project\TestNuget.csproj.
Restore completed in 68.84 ms for C:\Path\To\My\Project\TestNuget.csproj.

结果如下:

> dotnet ef
No executable found matching command "dotnet-ef"

然后我尝试了这个(使用最新版本的Nuget,截至今天&#39;)

nuget restore Example.csproj

输出:

MSBuild auto-detection: using msbuild version '15.6.85.37198' from 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin'.
Committing restore...
Tool assets file has not changed. Skipping assets file write. Path: C:\Path\ToNuget\.nuget\packages\.tools\microsoft.visualstudio.web.codegeneration.tools\2.0.3\netcoreapp2.0\project.assets.json
Restore completed in 139.95 ms for C:\Path\To\User\source\repos\Example\Example\Example.csproj.
Committing restore...
Assets file has not changed. Skipping assets file writing. Path: C:\Path\To\User\source\repos\Example\Example\obj\project.assets.json
Restore completed in 113.51 ms for C:\Path\To\User\source\repos\Example\Example\Example.csproj.

NuGet Config files used:
    C:\Path\To\User\AppData\Roaming\NuGet\NuGet.Config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.Fallback.config

Feeds used:
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
    https://api.nuget.org/v3/index.json

结果相同。

我完全不确定问题是什么,我在线阅读的所有内容,包括https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet 说明你要做的就是更改.csproj文件并使用dotnet / nuget包管理工具进行恢复,但这对我的项目似乎没有任何作用,并且dotnet-ef.exe仍然无法找到

1 个答案:

答案 0 :(得分:2)

我做了以下操作并且有效,

  1. 创建新的.NET Core MVC Web App
  2. 转到命令提示符,更改 dir到您的应用程序项目文件夹
  3. 执行以下命令
  4. dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore
    

    执行上述命令后, 在.csproj文件中包含以下行(在结束项目标记之前)

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

    完整的.csproj文件可能如下所示,

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp2.0</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.2" />
      </ItemGroup>
    
      <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
      </ItemGroup>
      <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
    </ItemGroup>
    
    </Project>
    

    输入 dotnet ef

    如果所有配置都正常,您将看到以下响应

                         _/\__
                   ---==/    \\
             ___  ___   |.    \|\
            | __|| __|  |  )   \\\
            | _| | _|   \_/ |  //|\\
            |___||_|       /   \\\/\\
    
    Entity Framework Core .NET Command Line Tools 2.0.0-rtm-26452
    
    Usage: dotnet ef [options] [command]
    
    Options:
      --version        Show version information
      -h|--help        Show help information
      -v|--verbose     Show verbose output.
      --no-color       Don't colorize output.
      --prefix-output  Prefix output with level.
    
    Commands:
      database    Commands to manage the database.
      dbcontext   Commands to manage DbContext types.
      migrations  Commands to manage migrations.
    
    Use "dotnet ef [command] --help" for more information about a command.