这几天生病了,也没有心情写博客,北京医院真心伤不起呀,钱不少花,病没治好,还增加了新病,哎不说了,周末还得去大医院检查一下,趁女盆友还没有回来,把前几天写的东西总结一下。本文也会接触一点webApi的东东,自己最近也一直在看,算是入门了吧。本文用到的知识点有MVC4、knockout.js、EntityFramework、WebApi、Redis缓存及基于Redis缓存的Session共享,都是很基础的操作,MVC我会介绍过滤器及错误捕捉,EntityFramework增删改数据,WebApi做为数据通信以及Redis的基本缓存操作等。
如果你对这些知识还不太熟悉,请打开连接阅读前几篇文章。http://www.cnblogs.com/lc-chenlong/
本文参考:
http://www.cnblogs.com/artech/archive/2012/05/14/web-api-demo.html(蒋金楠)
http://www.cnblogs.com/rohelm/p/3195750.html(webAPI入门讲解)
本文主要实现以下功能:
- MVCweb程序与WebApi实现数据通信及Session共享(两个分部署)
- MVC过滤器及错误捕捉
- Redis缓存操作
通过一个学生信息的管理来实现该项目。本人对webApi也是入门级别,如果过得不对的欢迎指正,也欢迎分享学习资料。
1、我们先介绍一下WebApi项目,项目结构如下图
- 其中Common项目为自定义的Session,详细请参见http://www.cnblogs.com/lc-chenlong/p/3221003.html
- MvcWebApi要引用Common项目
- MvcWebApi项目 ValuesController.cs为数据的增删改查及Redis缓存操作
- DbHelper.cs为我们的数据库上下文
- Students.cs为学生实体类。
1.1、Students.cs实体类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; namespace MvcWebApi.Models { [Table("tb_Students", Schema = "dbo")]//关联数据表 dbo.tb_Students public class Students { [Key] public string Num { get; set; } [MaxLength(10),Required(ErrorMessage="姓名不能为空")] [Column(TypeName = "nvarchar")] public string Name { get; set; } public int Age { get; set; } [MaxLength(10)] [Column(TypeName = "varchar")] public string Sex { get; set; } [MaxLength(50)] public string Class { get; set; } } }