手撸ORM浅谈ORM框架之基础篇
手撸ORM浅谈ORM框架之Add篇
手撸ORM浅谈ORM框架之Update篇
手撸ORM浅谈ORM框架之Delete篇
手撸ORM浅谈ORM框架之Query篇
后续待定。。。。。。 前人栽树,后人乘凉BaseRepository-》GetCurrentTableName、GetExcludeKeyAllFields已经在《手撸ORM浅谈ORM框架之Add篇》BaseRepository里面的方法,不重复搬砖了。
承上启下,传递希望BaseRepository-》GetKey获取表主键,目前自动递增主键使用的KeyAttribute标识自动递增主键,更新不需要区分主键类型获取当前实体所有的主键作为where更新条件;如果项目中需要使用复合主键、指定主键(按照业务单元生成的业务所需主键,例如: SN2020102600001等),获取Key的方法加入自定义的xxxAttribute作为条件之一,来满足当前的业务需要;
1 /// <summary> 2 /// get key-atttribute 3 /// </summary> 4 /// <returns>return key-attribute</returns> 5 private List<PropertyInfo> GetKey() 6 { 7 List<PropertyInfo> list = new List<PropertyInfo>(); 8 PropertyInfo[] properties = typeof(T).GetProperties(); 9 foreach (var item in properties) 10 { 11 if (item.CustomAttributes.Any(c => c.AttributeType.Name == nameof(KeyAttribute))) 12 { 13 list.Add(item); 14 } 15 } 16 return list; 17 }