在我们的SS项目中,建议的文件结构如下:


ServiceStack 项目实例 003  建议的文件结构定义及服务类说明_服务文件


   需要的最基本的文件包含三个文件,

   1 服务文件:其中包含有入口类、出口类定义和服务类的定义,入口类是HTTP 请求request时候使用的类,出口类是HTTP 相应中使用的类,服务类中会调用入口类和出口类,关于入口类出口类和服务类的说明见下文。


   2 实体类文件:定义数据库相关的实体类,在SS中,实体类既可用作入口类,也可作为出口类。


   3 数据访问类文件: 定义数据库操作的功能函数,这些功能函数会使用实体类文件中的类定义来映射数据库表,实体类文件中的类文件一般为DTO类,同时被服务文件和数据访问文件使用。



    服务类文件可以根据需要分解为多个,比如一个资讯管理系统包含有类别管理 文章管理 新闻管理 下载管理 专题管理 ,  就可以将这几个功能模块分别对应一个服务文件,

示例如下:

CategoryService.csArticleService.csNewsService.csDownloadService.csSpecialService.cs


 

     入口类、出口类和实体类在对外服务中的用处。


     入口类是数据传入的接口类,出口类是数据输出的接口类,实体类既可以作为入口类也可以作为出口类。

     一般的应用情况是:

添加和修改数据时
入口类为实体类,封装传入的表单数据;

出口类为简单类(POCO型),作为操作状态的返回信息,如是否操作成功
列表、显示一条信息时
入口类为简单类(POCO型),通常对于的是URL参数或这post的查询条件等

出口类为实体类,用于传递数据到到页面,可附加虚拟字段,添加得到的记录条数、以及总计统计数值等
在删除操作中
入口类一般不用实体类,而是传入一个或一组ID来实现删除操作,也可以传入实体类来完成操作

出口类通常为状态信息,如操作是否成功,也可无任何返回信息

  


   

PS : 项目比较复杂时 , 文件拆分的建议


ServiceStack 项目实例 003  建议的文件结构定义及服务类说明_实体类文件_02