csharp 标准脚手架EntityFramework与异步操作WebAPI控制器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 标准脚手架EntityFramework与异步操作WebAPI控制器相关的知识,希望对你有一定的参考价值。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Description;
using WebApi.DAL;
using WebApi.Models;
namespace WebApi.Controllers
{
public class PeopleController : ApiController
{
private WebApiContext db = new WebApiContext();
// GET: api/People1
public IQueryable<Person> GetPeople()
{
return db.People;
}
// GET: api/People1/5
[ResponseType(typeof(Person))]
public async Task<IHttpActionResult> GetPerson(int id)
{
Person person = await db.People.FindAsync(id);
if (person == null)
{
return NotFound();
}
return Ok(person);
}
// PUT: api/People1/5
[ResponseType(typeof(void))]
public async Task<IHttpActionResult> PutPerson(int id, Person person)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != person.Id)
{
return BadRequest();
}
db.Entry(person).State = EntityState.Modified;
try
{
await db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!PersonExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
// POST: api/People1
[ResponseType(typeof(Person))]
public async Task<IHttpActionResult> PostPerson(Person person)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.People.Add(person);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = person.Id }, person);
}
// DELETE: api/People1/5
[ResponseType(typeof(Person))]
public async Task<IHttpActionResult> DeletePerson(int id)
{
Person person = await db.People.FindAsync(id);
if (person == null)
{
return NotFound();
}
db.People.Remove(person);
await db.SaveChangesAsync();
return Ok(person);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
private bool PersonExists(int id)
{
return db.People.Count(e => e.Id == id) > 0;
}
}
}
以上是关于csharp 标准脚手架EntityFramework与异步操作WebAPI控制器的主要内容,如果未能解决你的问题,请参考以下文章