【问题标题】:How to create a new dotnet core application that has both auth and EF?如何创建同时具有 auth 和 EF 的新 dotnet 核心应用程序?
【发布时间】:2018-05-14 21:21:08
【问题描述】:

我可以使用命令行创建一个具有身份验证/身份的新 dotnetcore 应用:

dotnet new mvc --auth Individual

如何在项目中也包含实体框架?

【问题讨论】:

  • 我会看看 Jon Skeet 关于如何提出一个好问题的博客文章。 codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 你已经提供了足够的信息让我给你一个答案,但是这个问题缺少一点细节。例如,您使用的是哪个版本的 .NET Core SDK?

标签: c# .net-core


【解决方案1】:

TL;DR

你的项目中已经有了它

长格式答案

创建应用程序后,它应该具有实体框架作为依赖项。我假设您正在运行 .NET Core 2.0 SDK。

这是我机器的输出

$ dotnet new mvc --auth Individual --name testForStackOverflow
The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/template-3pn for details.

Processing post-creation actions...
Running 'dotnet restore' on testForStackOverflow/testForStackOverflow.csproj...
  Restoring packages for  testForStackOverflow/testForStackOverflow.csproj...
  Restore completed in 40.17 ms for  testForStackOverflow/testForStackOverflow.csproj.
  Restore completed in 40.17 ms for  testForStackOverflow/testForStackOverflow.csproj.
  Restore completed in 25.25 ms for  testForStackOverflow/testForStackOverflow.csproj.
  Generating MSBuild file  testForStackOverflow/obj/testForStackOverflow.csproj.nuget.g.props.
  Generating MSBuild file  testForStackOverflow/obj/testForStackOverflow.csproj.nuget.g.targets.
  Restore completed in 2.84 sec for  testForStackOverflow/testForStackOverflow.csproj.


Restore succeeded.

然后我看一下生成的csproj:

$ cd testForStackOverflow/
~/testForStackOverflow$ ls
app.db                        Data        Startup.cs
appsettings.Development.json  Extensions  testForStackOverflow.csproj

appsettings.json              Models      Views
bower.json                    obj         wwwroot
bundleconfig.json             Program.cs
Controllers                   Services
~/testForStackOverflow$ cat testForStackOverflow.csproj 
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <UserSecretsId>aspnet-testForStackOverflow-AD382505-1A70-4A75-8059-1E0E3897A088</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <None Update="app.db" CopyToOutputDirectory="PreserveNewest" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" PrivateAssets="All" />
  </ItemGroup>

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

</Project>

csproj重要的一行在这里:

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />

这是对ASP.NET Core metapackage 的引用。这个包包含所有常见的 ASP.NET Core NuGet 包,包括 Entity Framework Core - 根据这个来自 NuGet 的屏幕截图(刚刚捕获)

这意味着包还原操作的一部分包括将 EF Core 还原到您的项目中。

我想说您应该查看this documentation 的 EF Core - 该链接应该将您直接带到标有“模型”的部分。您不需要前面部分(标记为“获取实体框架核心”)中的内容,因为您已经拥有它。

当然,如果您使用的是 .NET Core SDK 1.x 版,那么情况就略有不同了。

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2018-07-17
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多