01WebAPI+NHibernate提供数据服务--NHibernate调用数据库接口
2017-03-23 23:57 张三李四隔壁老王 阅读(341) 评论(0) 编辑 收藏 举报在很多项目中因项目需要,项目会被被分为多个模块,而每个模块都有与数据库交互的需要。这个时候一个独立的数据服务就尤为重要。
NHibernate支持二级缓存,可在多模块下依旧保证数据的独立性,唯一性。不会出现多模块处理同一数据的情况。详细就不介绍,网上教程攻略大把。
WebApi早在Asp.Net MVC4发布时,便一起被发布。借用大神的话介绍:Web API是为HTTP而设计和存在的,Web API毫无保留地就是围绕充分利用HTTP而设计的。Web API其实并不是轻量级的,但它只针对一个协议来支持API,它不会产生很多超重的包袱。
WebApi 与Nhibernate使用方法本文不做详细介绍,只介绍将两者组合的相关代码与说明;
直接上代码段:
1 /// <summary> 2 /// 保存数据接口 3 /// </summary> 4 /// <param name="type">数据类型描述</param> 5 /// <param name="data">数据的json格式</param> 6 /// <returns>结果对象</returns> 7 string SaveData(string type, string data); 8 9 /// <summary> 10 /// 保存或更新数据的接口,根据id号进行判断 11 /// </summary> 12 /// <param name="type">数据类型描述</param> 13 /// <param name="data">数据的json格式</param> 14 /// <returns>结果对象</returns> 15 string SaveOrUpdateData(string type, string data); 16 17 /// <summary> 18 /// 更新数据接口 19 /// </summary> 20 /// <param name="type">数据类型描述</param> 21 /// <param name="data">数据的json格式</param> 22 /// <returns>结果对象</returns> 23 string UpdateData(string type, string data); 24 25 /// <summary> 26 /// 删除数据接口 27 /// </summary> 28 /// <param name="type">数据类型描述</param> 29 /// <param name="data">数据的json格式</param> 30 /// <returns>结果对象</returns> 31 string DeleteData(string type, string data); 32 33 /// <summary> 34 /// 会传入一个ID的数组,会将这些ID的对象进行删除 35 /// </summary> 36 /// <param name="type"></param> 37 /// <param name="ids"></param> 38 /// <returns></returns> 39 string DeleteDatas(string type, object[] ids); 40 41 /// <summary> 42 /// 通过ID获取一个数据 43 /// </summary> 44 /// <param name="type">数据的类型描述</param> 45 /// <returns>结果对象</returns> 46 string GetData(string type, object id); 47 48 string QueryAll(string type); 49 50 string Query(string type, string hql, Dictionary<string, object> parameters); 51 52 /// <summary> 53 /// 通过查询条件对象进行查询 54 /// </summary> 55 /// <param name="condition">QueryCondition的Json对象</param> 56 /// <returns>结果对象</returns> 57 string QueryByCondition(string condition); 58 59 /// <summary> 60 /// 分页查询 61 /// </summary> 62 /// <param name="condition">查询条件对象</param> 63 /// <param name="page">页码</param> 64 /// <param name="size">页大小</param> 65 /// <returns>结果对象</returns> 66 string PagingQuery(string condition, int page, int size);
所有返回的数据均使用Json 格式。
知识在于积累,技能在于锤炼。