ClassRoom是与教室信息相关的表,包含教室的名称
这个表比前面介绍的DepTable表稍微复杂点,他有一列DepID 这列是与DepTable表中的ID相对应的的。
有了DepID这一列,我们就可以根据DepID 获取某单位的所有教室。
我们暂时把DepID这一列叫做外键列吧。对于拥有外键列的表,仍然可以用我们的codesmith模板生成相关的存储过程和类。有的时候我们希望能够以外键为参数查找相关的数据,
所以在对应的codesmith模板中增加了以外键为参数查找和以外键为参数自动分页查找的相关的代码。分页查找的存储过程和方法也都是自动生成的。
下面我们来举例说明:
第一步 生成存储过程,如下图,外键列名是必须填写的:
生成的存储过程如下:
CodeSmith模板生成的存储过程
生成的存储过程如下:
ClassRoom_Delete
ClassRoom_GetCount
ClassRoom_SelectOne
ClassRoom_SelectAll
ClassRoom_Insert
ClassRoom_Update
ClassRoom_SelectPage
比普通表多了3个,如下
ClassRoom_SelectTopList 根据外键获取前10条
ClassRoom_GetListCount 根据外键获取总数
ClassRoom_SelectListPage 根据外键获取分页数据
第二步:用CodeSmith模板生成数据层代码:
CodeSmith模板生成的数据层数据
生成的方法如下:
Create
Update
Delete
GetOne
GetCount
GetAll
GetPage
比普通数据表多了3个方法
GetTopList 根据外键获取前10数据
GetListCount 根据外键获取数量
GetListPage 根据外键获取分页数据
第三步:根据外键获取实体类(客户端与服务器通讯时需使用,序列化方法使用protobuf.net)
生成的代码如下:
CodeSmith生成的实体类代码
这个和普通表大致相同
第四步:生成操作类:
生成代码如下:
CodeSmith生成的操作类代码
Delete
GetCount
GetAll
GetPage
Create
Update
比普通表多2个方法
GetTopList 根据外键获取前10数据
GetListPage 根据外键获取分页数据
好的,带有外键的数据表的几层数据我们已经生成完成了。
注意使用CodeSmith生成数据的时候,数据表必须设置有主键,否则生成不成功。
其他表类似,每个表都需要建立相应的存储过程和类