本节是前面四节的延续,在前面几节中咱们建立了Web API并添加了必要的基础设施,实现了Get、Post、和Put方法。本节中,咱们将介绍如何在Web API中实现Delete方法。数据库
在RESTful架构中,HTTP DELETE请求用来删除数据源中的现有记录。c#
如今,让咱们在StudentController中建立一个Delete操做方法,该方法将使用实体框架删除在数据库中现有的学生记录。Delete类型的操做方法名称必须以Delete开头或者直接命名为“Delete”。例如:DELETE(), Delete(), DeleteStudent(), DeleteAllStudents()都是用来处理Http Delete请求的有效的Delete方法的名称。api
下面的例子演示了用来处理HTTP Delete请求的Delete操做方法的实现。架构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
StudentController : ApiController
{
public
StudentController()
{
}
public
IHttpActionResult Delete(
int
id)
{
if
(id <= 0)
return
BadRequest(
"Not a valid student id"
);
using
(var ctx =
new
SchoolDBEntities())
{
var student = ctx.Students
.Where(s => s.StudentID == id)
.FirstOrDefault();
ctx.Entry(student).State = System.Data.Entity.EntityState.Deleted;
ctx.SaveChanges();
}
return
Ok();
}
}
|
正如您所看到的,Delete操做方法包括一个int类型的id参数,由于它只须要传入一个id就能够删除记录。它从数据库获取与指定的id想匹配的现有学生信息,而后将其状态标记为删除。这将从数据库中删除一个学生的信息。框架
如今,您能够使用Fiddler发送HTTP DELETE请求,返回信息以下所示。学习
正如你在上面的图中所看到的,HTTP DELETE请求urlhttp://localhost:64189/api/student?id=1包含查询字符串id。这个id查询字符串将做为一个id参数传递到Delete()方法。成功执行后返回200 OK响应状态。url
所以您能够建立Get、Post、Put和Delete方法来实现处理HTTP Get、Post、Put和Delete请求。spa
如今,让咱们在后续的章节中学习如何将这个Web API项目应用到ASP.NET MVC和AngularJS中。code