.net core mvc初级教程(一)
做一个关于.net core mvc的初级教程,
第一篇的目录
一、创建新项目,项目名为DemoCoreStudy
二、建立类库DemoCoreStudy.Models,在其中添加Cinema,Movie,Sales类
三、建立服务,服务注册
第一篇为准备工程
一、创建新项目,项目名为DemoCoreStudy
DemoCoreStudy项目添加引用DemoCoreStudy.Models项目
二、DemoCoreStudy.Models项目添加三个类在其中添加Cinema,Movie,Sales类
Cinema类
using System;namespace DemoCoreStudy.Models
{public class Cinema{public int Id { get; set; }public string Name { get; set; }public string Location { get; set; }//地址public int Capacity { get; set; }//容纳多少观众}
}
Movie类
using System;namespace DemoCoreStudy.Models
{public class Movie{public int Id { get; set; }public string Name { get; set; }public int CinemaId { get; set; }public string Starring { get; set; }public DateTime ReleseDate { get; set; }}
}
Sales类
namespace DemoCoreStudy.Models
{public class Sales{public int CinemaId { get; set; }public int MovieId { get; set; }public int AudienceCount { get; set; }//卖出多少票}
}
三、建立服务,服务注册
在DemoCoreStudy项目中添加接口ICinemaService,IMovieService与实现类CinemaMemoryService,MovieMemoryService
ICinemaService接口代码
using DemoCoreStudy.Models;
using System.Collections.Generic;
using System.Threading.Tasks;namespace DemoCoreStudy.Serivce
{public interface ICinemaService{Task<IEnumerable<Cinema>> GetllAllAsync();//查询所有的Cinema值Task<Cinema> GetByIdAsync(int id);//查询指定ID的CinemaTask AddAsync(Cinema model);//创建Cinema值}
}
IMovieService接口代码
using DemoCoreStudy.Models;
using System.Collections.Generic;
using System.Threading.Tasks;namespace DemoCoreStudy.Serivce
{public interface IMovieService{Task AddAsync(Movie model);Task<IEnumerable<Movie>> GetByCinemaAsync(int cinemaId);}
}
CinemaMemoryService实现类,并添加种子数据
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using DemoCoreStudy.Models;namespace DemoCoreStudy.Serivce
{public class CinemaMemoryService : ICinemaService{private readonly List<Cinema> _cinema=new List<Cinema>();public CinemaMemoryService(){_cinema.Add(new Cinema{Name ="天堂电影院",Location = "上海",Capacity = 1000});_cinema.Add(new Cinema{Name = "疯人电影院",Location = "北京",Capacity = 10000});}public Task<IEnumerable<Cinema>> GetllAllAsync(){return Task.Run(() => _cinema.AsEnumerable());}public Task<Cinema> GetByIdAsync(int id){return Task.Run(() => _cinema.SingleOrDefault(x => x.Id == id));}public Task AddAsync(Cinema model){var maxId = _cinema.Max(x => x.Id);model.Id = maxId + 1;_cinema.Add(model);return Task.CompletedTask;}}
}
MovieMemoryService实现类,添加种子数据
using DemoCoreStudy.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace DemoCoreStudy.Serivce
{public class MovieMemoryService : IMovieService{private readonly List<Movie> _movies=new List<Movie>();public MovieMemoryService(){_movie.Add(new Movie{Id = 1,CinemaId = 1,Name = "这个杀手不太冷",ReleseDate = new DateTime(2018, 1, 1),Starring = "Tommy"});_movie.Add(new Movie{Id = 2,CinemaId = 2,Name = "笑傲江湖",ReleseDate = new DateTime(2018, 1, 1),Starring = "Tommy"});_movie.Add(new Movie{Id = 2,CinemaId = 2,Name = "小萝莉与猴神大叔",ReleseDate = new DateTime(2018, 1, 1),Starring = "Tommy"});}public Task<IEnumerable<Movie>> GetByCinemaAsync(int cinemaId){return Task.Run(() => _movies.Where(x=>x.CinemaId==cinemaId));}public Task AddAsync(Movie model){var maxId = _movies.Max(x => x.Id);model.Id = maxId + 1;_movies.Add(model);return Task.CompletedTask;}}
}
接下来是服务注册
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using DemoCoreStudy.Serivce;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;namespace DemoCoreStudy
{public class Startup{// This method gets called by the runtime. Use this method to add services to the container.// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940public void ConfigureServices(IServiceCollection services){services.AddSingleton<ICinemaService, CinemaMemoryService>();services.AddSingleton<IMovieService, MovieMemoryService>();}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.Run(async (context) =>{await context.Response.WriteAsync("Hello World!");});}}
}
添加了这两行
services.AddSingleton<ICinemaService, CinemaMemoryService>();
services.AddSingleton<IMovieService, MovieMemoryService>();
不注册是无法执行的,AddSingleton是表示生命周期
注入的三种生命周期:
//瞬时(生命周期服务在它们每次请求时被创建。这一生命周期适合轻量级的,无状态的服务。)
//services.AddTransient();
//单例(单例生命周期服务在它们第一次被请求时创建并且每个后续请求将使用相同的实例。)
//services.AddSingleton();
//作用域(作用域生命周期服务在每次请求被创建一次。)
//services.AddScoped();
代码放在github上
https://github.com/1045683477/github-upload
下篇https://blog.csdn.net/qq_41841878/article/details/85345903
转载于:https://www.cnblogs.com/zuiren/p/10849931.html
.net core mvc初级教程(一)相关推荐
- .net core mvc初级教程(六)
一.创建movie的视图 二.对cinema.movie视图添加'添加信息'的操作 一.创建movie的视图 在views文件夹下添加Movie文件夹,在这个文件夹下添加Index.cshtml视图, ...
- ASP .NET Core Web MVC系列教程四:添加模型
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程三:添加视图 ...
- ASP .NET Core Web MVC系列教程三:添加视图
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程二:添加控制器 ...
- ASP .NET Core Web MVC系列教程二:添加控制器
系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程一:创建一个W ...
- ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序
本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...
- ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门
一.前言 1.本教程主要内容 ASP.NET Core MVC (Razor)视图母版页教程 ASP.NET Core MVC (Razor)带有Section的视图母版页教程 ASP.NET Cor ...
- ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用
原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...
- ASP.NET Core 入门教程 6、ASP.NET Core MVC 视图布局入门 1
ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 原文:ASP.NET Core 入门教程 6.ASP.NET Core MVC 视图布局入门 一.前言 1.本教 ...
- ASP.NET Core MVC 和 EF Core 教程 - 创建、读取、更新和删除
作者:Tom Dykstra 和 Rick Anderson Contoso 大学示例 web 应用程序演示如何使用 Entity Framework Core 和 Visual Studio 创建 ...
最新文章
- Vue学习笔记第一天--es6
- lintcode-34-N皇后问题 II
- ckeditor java 使用_如何覆盖默认插件并使用它们拥有按钮ckeditor
- Linux 命令之 env -- 显示系统的环境变量,定义执行命令时的环境变量
- 如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库
- Android相机基础基于camera2API
- 2018年内蒙古开出4.93亿环保罚单
- SVN 安装与使用教程 2020年9月更新最新教程
- 自学c语言资料,自学c语言(全套资料).doc
- PHP生成腾讯云API签名
- linux下通过ping命令监控网络抖动脚本
- 返回 代码: E_INVALIDARG (0x80070057)解决方法
- 网络层HTPPS和HTTP的概念与区别
- IDEA 修改单行的注释格式
- 计算机网络安全叙述,计算机网络安全涉及
- go语言比java高级在哪里
- 小米手机风筝守护显示服务器异常,风筝守护只能小米用吗
- Adam学习25之读取sam生成的alignmentRecord含recordGroupDictionary
- 按键-第1季第9部分-朱有鹏-专题视频课程
- YC-Framework版本更新:V1.0.9