通过前3章文章,大致对ORM有一定的了解,但也存在效率低下(大量用了反射)和重复代码,今天我们要对ORM进行优化。
具体流程如下:
我们优化的第一个就是减少反射调用,我的思路是定义一个Mapping,把表名、字段名信息缓存起来,EntityMapping 表示实体类信息对应数据库中的table,MemberMapping表示实体类的属性对应数据库中的Column。
EntityMapping代码:
class EntityMapping { /// <summary> /// 对应实体类类型 /// </summary> public Type EntityType { get; internal set; } /// <summary> /// 表名 /// </summary> public string TableName { get; set; } /// <summary> /// 实体属性 /// </summary> public List<MemberMapping> Members; /// <summary> /// 主键 /// </summary> public List<MemberMapping> PrimaryKey { get; set; } }