예제 #1
0
        public static string GetQuery(Type type)
        {
            string tableName = Reflections.GetTableName(type);

            var properties = type.GetProperties();

            string expression = "Select ";

            foreach (var prop in properties)
            {
                var attrs = prop.GetCustomAttributes(true).Where(o => o is DalObjAttribute);

                foreach (var dalAttr in attrs)
                {
                    DalObjAttribute custDalAttr = dalAttr as DalObjAttribute;

                    expression += String.Format("{0}.{1} as {2},", tableName, custDalAttr.Alias, prop.Name);
                }
            }

            expression = expression.Substring(0, expression.Length - 1);

            expression += String.Format(" From {0}", tableName);

            return(expression);
        }
예제 #2
0
        public static string GetTableName(Type type)
        {
            var dalObjAttributes = type.GetCustomAttributes(true).Where(o => o is DalObjAttribute);

            foreach (var item in dalObjAttributes)
            {
                DalObjAttribute currAttr = item as DalObjAttribute;

                if (!String.IsNullOrEmpty(currAttr.Alias))
                {
                    return(currAttr.Alias);
                }
            }

            return(null);
        }
예제 #3
0
        public static string GetPk(Type type)
        {
            var props = type.GetProperties();

            foreach (var propItem in props)
            {
                var custAttrs = propItem.GetCustomAttributes(true).Where(o => o is DalObjAttribute);

                foreach (var dalAttrItem in custAttrs)
                {
                    DalObjAttribute dalAttrs = dalAttrItem as DalObjAttribute;

                    if (dalAttrs.IsPrimaryKey)
                    {
                        return(dalAttrs.Alias);
                    }
                }
            }

            return(null);
        }