private static List <MpperRelevanceItem> GetMpperRelevanceItems <T>(T entity, IDataReader read, IEntityMapper <T> mapper, Func <bool, KeyValuePair <int, string>, MpperRelevanceItem> method) where T : DataEntity, new() { var rex = mapper.Relevances.Count() > 0 ? $"^[{DataEntityMapper<T>.GetRelevanceAlias(mapper)}]_.$*" : ".*"; var s = new List <MpperRelevanceItem>(read.GetSchemaTable().Columns.Count); var t = read.GetSchemaTable(); foreach (DataRow r in t.Rows) { var keyValue = new KeyValuePair <int, string>((int)r["ColumnOrdinal"], r["ColumnName"].ToString()); var p = method(Regex.IsMatch(keyValue.Value, rex, RegexOptions.IgnoreCase), keyValue); if (p != null) { s.Add(p); } } return(s); }
// GetMappedName internal static string GetMappedName(Type type, Command command) { return(DataEntityMapper.For(type)?.Get(command)?.Name ?? type.GetTypeInfo().GetCustomAttribute <MapAttribute>()?.Name ?? type.Name); }
// GetCommandType internal static CommandType GetCommandType(Type type, Command command) { return(DataEntityMapper.For(type)?.Get(command)?.CommandType ?? CommandType.Text); }