예제 #1
0
        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);
        }
예제 #2
0
 // GetMappedName
 internal static string GetMappedName(Type type, Command command)
 {
     return(DataEntityMapper.For(type)?.Get(command)?.Name ??
            type.GetTypeInfo().GetCustomAttribute <MapAttribute>()?.Name ?? type.Name);
 }
예제 #3
0
 // GetCommandType
 internal static CommandType GetCommandType(Type type, Command command)
 {
     return(DataEntityMapper.For(type)?.Get(command)?.CommandType ?? CommandType.Text);
 }