前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ANCWEB - 基于 ASP.NET CORE 2.0 的 WEB 开发

ANCWEB - 基于 ASP.NET CORE 2.0 的 WEB 开发

作者头像
李郑
发布2019-12-12 16:35:42
9980
发布2019-12-12 16:35:42
举报
文章被收录于专栏:漫漫全栈路

ASP.NET Core 2 开发实战练习,基于 ASP.NET Core 2.0 + MSSQL + Angular 5 + Bootstrap 4 的 WEB 项目实例,项目内容开源于 raphaelli/ANCWEB - Github

项目说明

本项目参考 - 草根专栏 - 系列文章 教材,并以此为基础调整。

技术栈说明

参考技术文章,使用如下技术:

  • ASP.NET Core 2.0 Web API
  • MSSQL
  • Angular 5
  • Bootstrap 4

开发环境说明

使用VS Code 开发,插件列表:

环境搭建

创建项目

指令创建

VS code 中使用终端,并执行dotnet new webapi 指令创建 ASP.NET CORE WEB API 项目。

运行项目

创建成功后会自动生成项目,执行 dotnet run 试着运行下。

注意: 这里的 Hosting environmentProduction 即生产环境,我们可以切换到 developmentStaging模式。

有几种办法可以更改这个环境变量的值:

  1. 在执行dotnet run之前设置环境变量:

mac: export ASPNETCORE_ENVIRONMENT=Development

windows: set ASPNETCORE_ENVIRONMENT="Development"

  1. windows下可以在控制面板–系统–高级设置里面设置环境变量的值
  2. 在项目的appSettings.json文件里面设置也可以:

使用visual studio 2017的话, 可以在项目的launchSettings.json设置.

使用vscode的话, 可以在项目目录的launch.json进行设置.

注意:在VS Code 中使用lanch.json 设置后,只有使用VS Code启动项目才能生效。

安装 .net watch tool

打开.csproj添加此行:

代码语言:javascript
复制
<ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
  </ItemGroup>

然后执行命令:

代码语言:javascript
复制
dotnet restore

这样就使用下面的命令来代替dotnet run:

代码语言:javascript
复制
dotnet watch run

您可以随便修改一点代码, 然后就可以看到项目被重新编译并运行了。

配置ASP.NET Core 2.0 Web API

刚才已经创建好了 WEB API 的项目,接下来开始配置WEB API 。

分为下面四个步骤:

  • 建立API
  • 配置和使用Entity Framework Core 2.0
  • 配置ASP.NET Core
  • 使用automapper

添加模型(Models)

参考学习项目,建立模型如下:

Models/TvNetwork.cs:

代码语言:javascript
复制
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Tv.Models
{
    public class TvNetwork
    {
        public TvNetwork()
        {
            TvShows = new Collection<TvShow>();
        }
        public int Id { get; set; }
        public string Name { get; set; }
        public ICollection<TvShow> TvShows { get; set; }
    }
}

Models/TvShow.cs:

代码语言:javascript
复制
namespace Tv.Models
{
    public class TvShow
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int TvNetworkId { get; set; }
        public TvNetwork TvNetwork { get; set; }
    }
}

VS Code 使用 C# 开发时,安装插件后实际效率非常高,使用 prop 和代码块功能能快速创建实体类和属性。

添加Entity Framework Core

使用指令直接添加:

代码语言:javascript
复制
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet restore

先添加NUGET包 ,还原,添加应用:

代码语言:javascript
复制
<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
  <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>

然后使用 EF。

代码语言:javascript
复制
dotnet ef

创建 DbContext 上下文

创建一个文件夹叫做Database, 然后在里面建立一个文件TvContext.cs:

代码语言:javascript
复制
using Microsoft.EntityFrameworkCore;

namespace Tv.Database
{
    public class TvContext : DbContext
    {
        public TvContext(DbContextOptions<TvContext> options):base(options)
        {
        }
    }
}

使用Dbcontext时需要依赖注入,因此需要在 Startup.csConfigureServices中把TvContext 注册到容器:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<TvContext>(opt => opt.UseSqlServer(""));
    services.AddMvc();
}

注意:此处需要添加 Database文件夹 的引用和 EntityFrameworkCore 的引用。

appSettings.json中添加 数据库连接字符串:

代码语言:javascript
复制
"ConnectionStrings": {
    "Default": "server=localhost; database=tvdb; user id=sa; password=password;"
  },

注意:这里使用了实例字符串,按实际连接字符串修改。

回到Startup.cs, 可以使用这两种方式取得连接字符串:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    // services.AddDbContext<TvContext>(opt => opt.UseSqlServer(Configuration["ConnectionStrings:Default"]));
    services.AddDbContext<TvContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("Default")));
    services.AddMvc();
}

创建数据库

TvContext添加 DbSet数据集:

代码语言:javascript
复制
using Microsoft.EntityFrameworkCore;
using Tv.Models;

namespace Tv.Database
{
    public class TvContext : DbContext
    {
        public TvContext(DbContextOptions<TvContext> options)
            : base(options)
        {

        }

        public DbSet<TvNetwork> TvNetworks { get; set; }
        public DbSet<TvShow> TvShows { get; set; }
    }
}

然后添加migrations:

代码语言:javascript
复制
dotnet ef migrations add Initi

最后执行生成数据库

代码语言:javascript
复制
dotnet ef database update

数据库成功生成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目说明
    • 技术栈说明
      • 开发环境说明
        • 环境搭建
        • 创建项目
          • 指令创建
            • 运行项目
              • 安装 .net watch tool
              • 配置ASP.NET Core 2.0 Web API
                • 添加模型(Models)
                  • 添加Entity Framework Core
                    • 创建 DbContext 上下文
                      • 创建数据库
                      相关产品与服务
                      数据库
                      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档