CodeSmith模板生成三层架构代码使用说明.docx
文本预览下载声明
模板使用方式打开CodeSmith Studio,按以下顺序设置。14.最后点击生成11.设置是否会将实体类序列化成XML,如果要序列化,在实体类上会添加[Serializable]特性。8.设置是否使用延迟加载模式,如果使用,开始子对象集合为空,在访问子对象集合时才去数据库中查询数据。13.设置生成三层架构使用的数据库12.配置文件中的数据库连接串6.设置生成代码的命名空间前缀9.在此设置数据库中的视图是否为临时视图,如果是临时视图,生成后可以删除7.设置生成代码的目标目录,一般直接设置为项目所在的目录5.正则表达式过滤字符串,表名或视图名符合正则表达式才生成相应的三层架构代码,为空则不过滤,生成所有表和视图的三层架构3.双击打开三层架构模板2.加载后的模板目录4.如果打开了多个模板,点击切换到三层架构模板1.点击此处打开模板所在目录二.示例使用的数据库包含的表关系如下:三.生成的StuInfo表的实体类如下,其它实体结构相同:数据表的名字中如果存在“_”或空格,会自动清除,每一字段生成一个对应的属性,同样会去除“_”和空格,表中的外键字段除生成一个对应属性外,还会生成一个外键实体属性,如class_id,除生成ClassId属性外,还生成了一个类型为StudentClass的属性ClassRef,如果表的主键被其它表引用,如表Student_Score中的字段Student_id外键引用了Stu_Info表中的Student_ID主键,则StuInfo实体中包含一个集合StudentScoreList,如果一个表中有多个外键引用同一个表的主键,则该集合名会用数字进行编号。四.生成的数据访问类公共方法如下:1.连接串设置生成的代码中有一个Connection类,用来实现事务操作,该类中有一个ConnectionString静态属性,该属性用于储存数据连接串,定义如下:get{if (connectionString == null){connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[连接串名].ConnectionString;}}其中连接串名由CodeSmith生成时设置,如果Config文件中已更改连接串名称,此处也要更改。2.新增数据/// summary/// 不使用事务的插入方法/// /summary/// param name=stuInfo实体类对象/param/// returns标识列值或影响的记录行数/returnspublic static int Insert(StuInfo stuInfo)插入一条记录,如果该表有标识列,返回标识列值,否则返回影响的记录条数(当然只会是1)/// summary/// 使用事务的插入方法/// /summary/// param name=connection实现事务Connection的对象/param/// param name=stuInfo实体类对象/param/// returns标识列值或影响的记录行数/returnspublic static int Insert(Connection connection,StuInfo stuInfo)如果一次要插入多条记录,使用该方法包含在一个事务内,示例如下:using (Connection connection = new Connection()){connection.Open(); try { StudentClass cls = new StudentClass(); cls.ClassName = T337; int classID = DStudentClass.Insert(connection, cls); StuInfo stu = new StuInfo(); stu.ClassId = classID; stu.StudentName = abc; stu.StudentAge = 18; DStuInfo.Insert(connection, stu); connection.Commit(); } catch (Exception err) { connection.Rollback(); }}Connection对象位于数据访问层,用来进行事务操作。3.更新数据/// summary/// 不使用事务的更新方法/// /summary/// param name=stuInfo实体类对象/param/// returns影响的记录行数/returnspublic static int Update(StuInfo stuInfo)该方法根据主键值更新数据注:如果表中不
显示全部