如何创建一个同时具有auth和EF的新dotnet核心应用程序?

时间:2017-11-30 20:29:09

标签: c# .net-core

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

dotnet new mvc --auth Individual

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

1 个答案:

答案 0 :(得分:2)

TL; DR

您已在项目中拥有它

长篇答案

创建应用程序后,它应该将Entity Framework作为依赖项。我假设您正在运行.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的这个屏幕截图(刚刚捕获)

ASP.NET Core metapackage showing EF Core provided

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

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

当然,如果您使用的是.NET Core SDK的1.x版本,那么它的故事就会略有不同。