public IndexAttribute[] GetEntityIndexAttribute(Type type) { var ret = new Dictionary <string, IndexAttribute>(); if (_orm.Aop.ConfigEntity != null) { var aope = new Aop.ConfigEntityEventArgs(type); _orm.Aop.ConfigEntity(_orm, aope); foreach (var idxattr in aope.ModifyIndexResult) { if (!string.IsNullOrEmpty(idxattr.Name) && !string.IsNullOrEmpty(idxattr.Fields)) { if (ret.ContainsKey(idxattr.Name)) { ret.Remove(idxattr.Name); } ret.Add(idxattr.Name, new IndexAttribute(idxattr.Name, idxattr.Fields) { _IsUnique = idxattr._IsUnique }); } } } if (dicConfigEntity.TryGetValue(type, out var trytb)) { foreach (var idxattr in trytb._indexs.Values) { if (!string.IsNullOrEmpty(idxattr.Name) && !string.IsNullOrEmpty(idxattr.Fields)) { if (ret.ContainsKey(idxattr.Name)) { ret.Remove(idxattr.Name); } ret.Add(idxattr.Name, new IndexAttribute(idxattr.Name, idxattr.Fields) { _IsUnique = idxattr._IsUnique }); } } } var attrs = type.GetCustomAttributes(typeof(IndexAttribute), true); foreach (var tryattrobj in attrs) { var idxattr = tryattrobj as IndexAttribute; if (idxattr == null) { continue; } if (!string.IsNullOrEmpty(idxattr.Name) && !string.IsNullOrEmpty(idxattr.Fields)) { if (ret.ContainsKey(idxattr.Name)) { ret.Remove(idxattr.Name); } ret.Add(idxattr.Name, new IndexAttribute(idxattr.Name, idxattr.Fields) { _IsUnique = idxattr._IsUnique }); } } return(ret.Values.ToArray()); }
public TableAttribute GetEntityTableAttribute(Type type) { TableAttribute attr = null; if (_orm.Aop.ConfigEntity != null) { var aope = new Aop.ConfigEntityEventArgs(type); _orm.Aop.ConfigEntity(_orm, aope); attr = aope.ModifyResult; } if (attr == null) { attr = new TableAttribute(); } if (dicConfigEntity.TryGetValue(type, out var trytb)) { if (!string.IsNullOrEmpty(trytb.Name)) { attr.Name = trytb.Name; } if (!string.IsNullOrEmpty(trytb.OldName)) { attr.OldName = trytb.OldName; } if (!string.IsNullOrEmpty(trytb.SelectFilter)) { attr.SelectFilter = trytb.SelectFilter; } if (trytb._DisableSyncStructure != null) { attr._DisableSyncStructure = trytb.DisableSyncStructure; } } var attrs = type.GetCustomAttributes(typeof(TableAttribute), false); foreach (var tryattrobj in attrs) { var tryattr = tryattrobj as TableAttribute; if (tryattr == null) { continue; } if (!string.IsNullOrEmpty(tryattr.Name)) { attr.Name = tryattr.Name; } if (!string.IsNullOrEmpty(tryattr.OldName)) { attr.OldName = tryattr.OldName; } if (!string.IsNullOrEmpty(tryattr.SelectFilter)) { attr.SelectFilter = tryattr.SelectFilter; } if (tryattr._DisableSyncStructure != null) { attr._DisableSyncStructure = tryattr.DisableSyncStructure; } } if (!string.IsNullOrEmpty(attr.Name)) { return(attr); } if (!string.IsNullOrEmpty(attr.OldName)) { return(attr); } if (!string.IsNullOrEmpty(attr.SelectFilter)) { return(attr); } if (attr._DisableSyncStructure != null) { return(attr); } return(null); }
public TableAttribute GetEntityTableAttribute(Type type) { var attr = new TableAttribute(); foreach (var mp in _mappingPriorityTypes) { switch (mp) { case MappingPriorityType.Aop: if (_orm.Aop.ConfigEntityHandler != null) { var aope = new Aop.ConfigEntityEventArgs(type); _orm.Aop.ConfigEntityHandler(_orm, aope); var tryattr = aope.ModifyResult; if (!string.IsNullOrEmpty(tryattr.Name)) { attr.Name = tryattr.Name; } if (!string.IsNullOrEmpty(tryattr.OldName)) { attr.OldName = tryattr.OldName; } if (tryattr._DisableSyncStructure != null) { attr._DisableSyncStructure = tryattr.DisableSyncStructure; } if (!string.IsNullOrEmpty(tryattr.AsTable)) { attr.AsTable = tryattr.AsTable; } } break; case MappingPriorityType.FluentApi: if (dicConfigEntity.TryGetValue(type, out var trytb)) { if (!string.IsNullOrEmpty(trytb.Name)) { attr.Name = trytb.Name; } if (!string.IsNullOrEmpty(trytb.OldName)) { attr.OldName = trytb.OldName; } if (trytb._DisableSyncStructure != null) { attr._DisableSyncStructure = trytb.DisableSyncStructure; } if (!string.IsNullOrEmpty(trytb.AsTable)) { attr.AsTable = trytb.AsTable; } } break; case MappingPriorityType.Attribute: var attrs = type.GetCustomAttributes(typeof(TableAttribute), false); foreach (var tryattrobj in attrs) { var tryattr = tryattrobj as TableAttribute; if (tryattr == null) { continue; } if (!string.IsNullOrEmpty(tryattr.Name)) { attr.Name = tryattr.Name; } if (!string.IsNullOrEmpty(tryattr.OldName)) { attr.OldName = tryattr.OldName; } if (tryattr._DisableSyncStructure != null) { attr._DisableSyncStructure = tryattr.DisableSyncStructure; } if (!string.IsNullOrEmpty(tryattr.AsTable)) { attr.AsTable = tryattr.AsTable; } } break; } } if (!string.IsNullOrEmpty(attr.Name)) { return(attr); } if (!string.IsNullOrEmpty(attr.OldName)) { return(attr); } if (attr._DisableSyncStructure != null) { return(attr); } if (!string.IsNullOrEmpty(attr.AsTable)) { return(attr); } return(null); }