ClassRoom是与教室信息相关的表,包含教室的名称

录播教室预约系统(四)-ClassRoom表[带有外键的表]_networkcomms.cn

 

这个表比前面介绍的DepTable表稍微复杂点,他有一列DepID 这列是与DepTable表中的ID相对应的的。

有了DepID这一列,我们就可以根据DepID 获取某单位的所有教室。

我们暂时把DepID这一列叫做外键列吧。对于拥有外键列的表,仍然可以用我们的codesmith模板生成相关的存储过程和类。有的时候我们希望能够以外键为参数查找相关的数据,

所以在对应的codesmith模板中增加了以外键为参数查找和以外键为参数自动分页查找的相关的代码。分页查找的存储过程和方法也都是自动生成的。

下面我们来举例说明:

 第一步 生成存储过程,如下图,外键列名是必须填写的:

录播教室预约系统(四)-ClassRoom表[带有外键的表]_教室预约_02

生成的存储过程如下:

录播教室预约系统(四)-ClassRoom表[带有外键的表]_客户端_03 CodeSmith模板生成的存储过程

生成的存储过程如下:

ClassRoom_Delete
ClassRoom_GetCount 
ClassRoom_SelectOne 
ClassRoom_SelectAll
ClassRoom_Insert
ClassRoom_Update
ClassRoom_SelectPage

比普通表多了3个,如下

ClassRoom_SelectTopList  根据外键获取前10条
ClassRoom_GetListCount  根据外键获取总数
ClassRoom_SelectListPage 根据外键获取分页数据

 

第二步:用CodeSmith模板生成数据层代码:

 

录播教室预约系统(四)-ClassRoom表[带有外键的表]_教室预约_04

录播教室预约系统(四)-ClassRoom表[带有外键的表]_客户端_05 CodeSmith模板生成的数据层数据

生成的方法如下:

Create
Update
Delete
GetOne
GetCount
GetAll
GetPage

比普通数据表多了3个方法

GetTopList 根据外键获取前10数据
GetListCount  根据外键获取数量
GetListPage   根据外键获取分页数据

第三步:根据外键获取实体类(客户端与服务器通讯时需使用,序列化方法使用protobuf.net)

录播教室预约系统(四)-ClassRoom表[带有外键的表]_教室预约_06

生成的代码如下:

录播教室预约系统(四)-ClassRoom表[带有外键的表]_networkcomms.cn_07 CodeSmith生成的实体类代码

这个和普通表大致相同

 

第四步:生成操作类:

录播教室预约系统(四)-ClassRoom表[带有外键的表]_networkcomms.cn_08

生成代码如下:

录播教室预约系统(四)-ClassRoom表[带有外键的表]_教室预约_09 CodeSmith生成的操作类代码

Delete
GetCount
GetAll
GetPage

Create

Update

比普通表多2个方法

GetTopList 根据外键获取前10数据

GetListPage 根据外键获取分页数据

好的,带有外键的数据表的几层数据我们已经生成完成了。

注意使用CodeSmith生成数据的时候,数据表必须设置有主键,否则生成不成功。

其他表类似,每个表都需要建立相应的存储过程和类