示例#1
0
        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());
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }