====================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,”的文章
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。