Exemplo n.º 1
0
        void InitEntity()
        {
            EntityName = typeof(T).FullName;
            if (DictTable.ContainsKey(EntityName))
            {
                TableAttribute ta = DictTable[EntityName];
                InitTableAttribute(ta);
                return;
            }
            System.Reflection.MemberInfo info = typeof(T);
            //获取表结构定义
            object[] aryCA = info.GetCustomAttributes(false);
            foreach (object ca in aryCA)
            {
                if (ca is ORM.TableAttribute)
                {
                    TableAttribute ta = ca as ORM.TableAttribute;
                    InitTableAttribute(ta);
                    DictTable.Add(EntityName, ta);
                }
            }
            //获取属性
            PropertyInfo[] aryPI = typeof(T).GetProperties();
            foreach (PropertyInfo pi in aryPI)
            {
                object[] aryFA = pi.GetCustomAttributes(Type.GetType("CJia.ORM.FieldAttribute"), false);
                if (aryFA.Length == 0)
                {
                    continue;
                }

                if (aryFA[0] is ORM.FieldAttribute)
                {
                    ORM.FieldAttribute field = aryFA[0] as ORM.FieldAttribute;
                    if (!DictField.ContainsKey(EntityName))
                    {
                        DictField.Add(EntityName, new Dictionary <string, FieldAttribute>());
                    }
                    if (field.isPrimaryKey)
                    {
                        PrimaryKey = field.Name;
                    }
                    DictField[EntityName].Add(pi.Name, field);
                }
            }
        }
Exemplo n.º 2
0
        private DataColumn NewColumn(ORM.FieldAttribute field)
        {
            DataColumn dc = new DataColumn();

            dc.ColumnName = field.Name;
            dc.DataType   = field.DataType;
            dc.Caption    = field.Caption;
            if (field.DefaultValue != null)
            {
                dc.DefaultValue = field.DefaultValue;
            }
            if (field.DataType.ToString() == "System.String")
            {
                dc.MaxLength = field.MaxLength;
            }
            return(dc);
        }