博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
knockout+MVC+webapi+sqlserver完成增删查改
阅读量:5025 次
发布时间:2019-06-12

本文共 2763 字,大约阅读时间需要 9 分钟。

这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例。数据库采用的是sqlserver。话不多说,开始进行项目的步骤。

      第一步:数据库的表创建。创建一个Employees员工表,具体字段见下图:

        第二步:创建一个MVC项目,项目模板选择webapi。

第三步:在Model文件夹下新建一个ado.net实体数据模型,选择我们刚刚创建的employees的表,生成实体数据模型。

第四步:在controller文件夹下新建一个控制器,注意是包含读写操作和视图的API控制器,如下图

查看生成的代码如下

1 using System;  2 using System.Collections.Generic; 3 using System.Data; 4 using System.Data.Entity; 5 using System.Data.Entity.Infrastructure; 6 using System.Linq; 7 using System.Net; 8 using System.Net.Http; 9 using System.Web; 10 using System.Web.Http; 11 using DemoWebApi.Models; 12 13 namespace DemoWebApi.Controllers 14 { 15 public class EmployeeWebApiController : ApiController 16 { 17 private DemoDBEntities1 db = new DemoDBEntities1(); 18 19 // GET api/EmployeeWebApi 20 public IEnumerable
GetEmployees() 21 { 22 return db.Employees.AsEnumerable(); 23 } 24 25 // GET api/EmployeeWebApi/5 26 public Employees GetEmployees(int id) 27 { 28 Employees employees = db.Employees.Find(id); 29 if (employees == null) 30 { 31 throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); 32 } 33 34 return employees; 35 } 36 37 // PUT api/EmployeeWebApi/5 38 public HttpResponseMessage PutEmployees(int id, Employees employees) 39 { 40 if (!ModelState.IsValid) 41 { 42 return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); 43 } 44 45 if (id != employees.EmployeeID) 46 { 47 return Request.CreateResponse(HttpStatusCode.BadRequest); 48 } 49 50 db.Entry(employees).State = EntityState.Modified; 51 52 try 53 { 54 db.SaveChanges(); 55 } 56 catch (DbUpdateConcurrencyException ex) 57 { 58 return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 59 } 60 61 return Request.CreateResponse(HttpStatusCode.OK); 62 } 63 64 // POST api/EmployeeWebApi 65 public HttpResponseMessage PostEmployees(Employees employees) 66 { 67 if (ModelState.IsValid) 68 { 69 db.Employees.Add(employees); 70 db.SaveChanges(); 71 72 HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, employees); 73 response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = employees.EmployeeID })); 74 return response; 75 } 76 else 77 { 78 return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); 79 } 80 } 81 82 // DELETE api/EmployeeWebApi/5 83 public HttpResponseMessage DeleteEmployees(int id) 84 { 85 Employees employees = db.Employees.Find(id); 86 if (employees == null) 87 { 88 return Request.CreateResponse(HttpStatusCode.NotFound); 89 } 90 91 db.Employees.Remove(employees); 92 93 try 94 { 95 db.SaveChanges(); 96 } 97 catch (DbUpdateConcurrencyException ex) 98 { 99 return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 100 } 101 102

转载于:https://www.cnblogs.com/zxh1919/p/7873875.html

你可能感兴趣的文章
【牛客Wannafly挑战赛12】 题解
查看>>
ECfinal-D-Ice Cream Tower-二分+贪心
查看>>
ZOJ 10th Anniversary Contest - E
查看>>
.Net Core 爬坑日记
查看>>
RPM包安装软件 -- 详细解读
查看>>
Java 解析json数据
查看>>
java和javax都是Java的API包,java是核心包,javax的x是extension的意思,也就是扩展包。...
查看>>
sql截取
查看>>
Oracle 中session和processes的初始设置
查看>>
关于 MySQL LEFT JOIN 你可能需要了解的三点
查看>>
poj-3580-SuperMemo-splay
查看>>
POJ1743---Musical Theme(+后缀数组二分法)
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>
ym——Android开发编码规范(自用)
查看>>
leetcode:linked_list_cycle_II
查看>>
android媒体--stagefright概述【一】
查看>>
Android Touch事件传递机制具体解释 上
查看>>
cocos2dx动画Animation介绍
查看>>
python标准库-日志logging
查看>>
洛谷 P3397 地毯
查看>>