代码改变世界

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);
View Code

 所有返回的数据均使用Json 格式。