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

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生成数据的时候,数据表必须设置有主键,否则生成不成功。

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

时间: 2024-11-08 10:09:25

录播教室预约系统(四)-ClassRoom表[带有外键的表]的相关文章

录播教室预约系统(八)-客户端部门管理员增加教室

录播教室预约系统(八)-客户端部门管理员增加教室 管理员增加完成后,其他用户就可以看到多个教室了,如图: 我们看一下客户端增加教室的代码: 添加教室:             //声明一个教室实体类             ClassRoom classRoom = == = tcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message == =  + 我们看一下服务器端的处理程序 构造函数中声明: //学校管理员添加

录播教室预约系统序言

大概一年多年前吧,朋友让我帮他做一个预约系统,当时刚好在学习networkcomms.net的2.3.1版本(本人当时已购买商业版),正好想测试一下networkcomms.net通讯框架的稳定性,于是便开发了此预约系统,基于networkcomms2.3.1 .部署后,系统非常的稳定,平时的cpu占有率非常的低,很少有达到5%以上的情况,当然用户数也并不多,并发数最多大概100左右,没有出现过宕机等情况. 下面将会写一系列文章,来介绍录播教室预约系统的开发,诸位朋友可以了解如何基于networ

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则

录播教室预约系统(九)-客户端部门管理员设定教室的预约规则 设置预约规则的客户端代码:              int stopHourInt = (int)stopHour.Value;            int stopMinuteInt = (int)stopMinute.Value;            //截止的时间             int stopTimeInt = stopHourInt * 100 + stopMinuteInt;            //提前的

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码 客户端代码:  //发出的数据类型为int类型  ItemID为用户对应的ID             ResMessage resMessage = tcpConnnection.SendReceiveObject<ResMessage>("ReqResetPsw", "ResResetPsw", 5000, itemID);            if (resMessage.Messa

录播教室预约系统(六)-注册新用户

预约系统中,新用户可以自己注册,然后管理员开通. 注册界面如下: 客户端新用户注册代码:       button1_Click((txtUserID.Text.Trim ()==|| txtUserName.Text.Trim ()=== ==== = newTcpConnection.SendReceiveObject<ResMessage>(, ,  (resMessage.Message ==  + 服务器端的相关处理代码: 构造函数中声明:   //注册新用户            

录播教室预约系统(一)-数据库表

数据库用的是mssql2005. 数据库表如下: USE [RoomSchedule] GO /****** 对象: Table [dbo].[ClassRoom] 脚本日期: 02/07/2015 22:41:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ClassRoom]( [Id] [int] IDENTITY(1000,1) NOT NULL, [RoomName] [nv

录播教室预约系统(三)-DepTable表

DepTable表  主要作用 存放单位名称 如图: 模板下载地址 CodeSmith版本为v6.5 第一步:用CodeSmith模板生成DepTable表相关的存储过程 生成的存储过程如下: /****** Object: Stored Procedure [dbo].DepTable_Delete Script Date: 2015年2月8日 ******/ if exists (select * from [dbo].sysobjects where id = object_id(N'[d

录播教室预约系统(三)-DepTable表[普通表]

DepTable表  主要作用 存放单位名称 如图: 模板下载地址 CodeSmith版本为v6.5 第一步:用CodeSmith模板生成DepTable表相关的存储过程 生成的存储过程如下:  模板生成的DepTable表相关的基础存储过程 DepTable_Insert  插入数据DepTable_Update  更新数据 DepTable_SelectPage  获取分页数据 DepTable_SelectAll   获取所有数据 DepTable_SelectOne  获取某个数据 De

录播教室预约系统(十一)-客户端获取本单位的所有教室

客户端用户登陆后,在主界面中可以看到本单位的所有教室,我们来看一下是如何获取的: 客户端代码:    //根据用户获取功能教室列表         private void GetRooms(Users user)         {              //把当前用户信息发送个服务器端,并获取到本用户相关的教室列表              RoomList roomList = newTcpConnection.SendReceiveObject<RoomList>("Ge