====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
安装以下组件:
.NET Core 2.0.0 SDK 或更高版本。
已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2017 15.3 版或更高版本。
在 Visual Studio 中,选择“文件”菜单 >“新建” > “项目”
点击确定,按下F5 http://localhost:port/api/values
添加文件夹Models,添加类Student.cs
ay刚刚看到 依赖项里面有 EF core了,访问数据库的了,我们新建类,继承它。
Microsoft.EntityFrameworkCore.DbContext
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace AyTestApi.Models { public class AySchoolContext:DbContext { public AySchoolContext(DbContextOptions<AySchoolContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } }
注册上下文,若要将数据库上下文注入到控制器中,需要将它注册到依赖关系注入容器。 使用依赖关系注入的内置支持将数据库上下文注册到服务容器。
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
使用以下内容替换 Startup.cs 文件的内容:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using AyTestApi.Models; using Microsoft.EntityFrameworkCore; namespace AyTestApi { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext<AySchoolContext>(opt => opt.UseInMemoryDatabase("StudentList")); services.AddMvc(); } // 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.UseMvc(); } } }
接下来我们 新建StudentController
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using AyTestApi.Models; namespace AyTestApi.Controllers { [Route("api/student")] public class StudentController : Controller { private readonly AySchoolContext _context; public StudentController(AySchoolContext context) { _context = context; if (_context.Students.Count() == 0) { _context.Students.Add(new Student { Name = "杨洋" }); _context.SaveChanges(); } } } }
默认没有数据时候新增 一个学生。现在我们操作 这个数据
[HttpGet] public IEnumerable<Student> GetAll() { return _context.Students.ToList(); } [HttpGet("{id}", Name = "GetStudent")] public IActionResult GetById(long id) { var item = _context.Students.FirstOrDefault(t => t.Id == id); if (item == null) { return NotFound(); } return new ObjectResult(item); }
其中controll而上的Route特性里的api/后面的student单词,即在控制器类名称中去掉“Controller”后缀。 对于此示例,控制器类名称为“StudentController”,根名称为“student”。 ASP.NET Core 路由不区分大小写
讲解2
[HttpGet("{id}", Name = "GetStudent")]
public IActionResult GetById(long id)
"{id}" 是 student 项 的 ID 的占位符变量。 调用 GetById 时,它会将 URL 中“{id}”的值分配给方法的 id 参数。
Name = "GetStudent" 创建一个命名的路由
讲解3
返回json使用 ObjectResult() 方法,不是asp.net mvc的jsonresult了。
没有错误的话,返回消息是200,Notfound()返回404
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
AY: 现在F5运行项目
返回一个列表类型的
根据ID查询的
新增一个学生
[HttpPost] public IActionResult Create([FromBody] Student item) { if (item == null) { return BadRequest(); } _context.Students.Add(item); _context.SaveChanges(); return CreatedAtRoute("GetStudent", new { id = item.Id }, item); }
CreatedAtRoute 方法返回 201 响应,这是在服务器上创建新资源的 HTTP POST 方法的标准响应。 CreatedAtRoute 还会向响应添加位置标头。 位置标头指定新建的学生的 URI
下载postman 测试 我是64位的: 下载
安装完 https://www.getpostman.com/
F5运行项目,打开postman,按照数字单击,选择。
左侧地址输入 http://localhost:13121/api/Student 然后点击Send
点击下方的Headers,查看
然后在浏览器中 查找id为2的 ,发现数据已经增加进去了。
Update 与 Create 类似,但是使用的是 HTTP PUT。 响应是 204(无内容)。 根据 HTTP 规范,PUT 请求需要客户端发送整个更新的实体,而不仅仅是增量。 若要支持部分更新,请使用 HTTP PATCH
F5 运行项目,打开postman,因为内存数据,所以打开数据应该不见了。
从新 新增上次那条数据
然后查看列表
接下来我们使用postman, 调用update方法,谓词类型换成put,点击send
再次查看列表
操作删除
[HttpDelete("{id}")] public IActionResult Delete(long id) { var todo = _context.Students.FirstOrDefault(t => t.Id == id); if (todo == null) { return NotFound(); } _context.Students.Remove(todo); _context.SaveChanges(); return new NoContentResult(); }
我们先新增一个
列表查看
删除1
查看列表
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
好了,这样asp.net core 2.0算入门了。
推荐您阅读更多有关于“asp.net core,”的文章
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。