大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > ASP.NET技巧 > CodeSmith 使用教程(15) 为Yii Framework 创建生成ActiveRecord的代码模板

CodeSmith 使用教程(15) 为Yii Framework 创建生成ActiveRecord的代码模板(2)

关键词:CodeSmith使用教程  阅读(1979) 赞(21)

[摘要]本文主要介绍CodeSmith 使用教程(15) 为Yii Framework 创建生成ActiveRecord的代码模板,希望对你解决相关问题提供帮助。

EntityManager 管理所有的Entity(对应于整个数据库)

Entity实体类(对应到单个表,视图)

IAssoication 关系(定义表和表之间的关系)

AssoicationType 关系的类型 (见下表)

根据AssociationType ,数据库之间的关系以及Yii AR支持的几种关系,可以定义下表:

整个模板也是采用主-从模板的方式 ,主模板枚举EntityManager中的每个Entity,然后调用子模板为每个表生成AR类:

public void Generate()
{
   EntityManager entityManager = CreateEntityManager();
   foreach(IEntity entity in entityManager.Entities)
	{
		if (!(entity is CommandEntity)) {
			RenderEntity(entity);
		}
	}
}

...

private void RenderEntity(IEntity entity)
{

	string folder=@"../models/";
	EntityTemplate entityTemplate = this.Create<EntityTemplate>();
	entityTemplate.SourceEntity = entity;
	entityTemplate.RenderToFile(folder+entity.Name+".php", true);
}
子模板则根据每个Entity的Assoications(关系属性)为AR 生成relations函数,


相关评论