Пример #1
0
        /// <summary>
        /// 由一行数据生成一个实体
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="dataRow">数据行</param>
        /// <param name="smartMappingType">反射方式</param>
        /// <returns>反射后的实体</returns>
        public static T GetEntity <T>(this DataRow dataRow, FrameMappingType smartMappingType)
        {
            T item = Activator.CreateInstance <T>();

            GetEntity <T>(dataRow, smartMappingType, ref item);
            return(item);
        }
Пример #2
0
 /// <summary>
 /// 由一个DataTable返回一个实体列表
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataTable">数据表</param>
 /// <param name="smartMappingType">反射的方式</param>
 /// <returns>反射后的实体列表</returns>
 public static List <T> GetEntityList <T>(this DataTable dataTable, FrameMappingType smartMappingType)
 {
     if (dataTable.Rows.Count > 0)
     {
         return(GetEntityList <T>(dataTable.Rows, smartMappingType));
     }
     return(new List <T>());
 }
Пример #3
0
        /// <summary>
        /// 获取某个实体或匿名类型的由某特性标识的字段集合,包括公共字段和非公共字段
        /// </summary>
        /// <typeparam name="TAttribute">特性的类型</typeparam>
        /// <param name="type">实体或匿名对象的类型</param>
        /// <param name="frameMappingType">应用的反射方式</param>
        /// <returns>字段数组</returns>
        public static FieldInfo[] GetFieldInfoByAttribute <TAttribute>(Type type, FrameMappingType frameMappingType) where TAttribute : Attribute
        {
            List <FieldInfo> listFieldInfo = new List <FieldInfo>();

            foreach (FieldInfo fieldInfo in GetFieldInfos(type, frameMappingType))
            {
                TAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(TAttribute), false) as TAttribute;
                if (attribute != null)
                {
                    listFieldInfo.Add(fieldInfo);
                }
            }

            return(listFieldInfo.ToArray());
        }
Пример #4
0
        /// <summary>
        /// 由一个DataRow集合返回一个实体列表
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="dataRowCollection">数据行的集合</param>
        /// <param name="smartMappingType">反射的方式</param>
        /// <returns>反射后的实体列表</returns>
        public static List <T> GetEntityList <T>(DataRowCollection dataRowCollection, FrameMappingType smartMappingType)
        {
            List <T> list = new List <T>();

            PropertyInfo[] propertyInfos = null;
            FieldInfo[]    fieldInfos    = null;
            foreach (DataRow row in dataRowCollection)
            {
                T item = Activator.CreateInstance <T>();
                GetEntity <T>(row, smartMappingType, ref item, propertyInfos, fieldInfos);
                list.Add(item);
            }

            return(list);
        }
Пример #5
0
 /// <summary>
 /// 由一个DataRow集合返回一个实体列表
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataRowCollection">数据行的集合</param>
 /// <param name="smartMappingType">反射的方式</param>
 /// <returns>反射后的实体列表</returns>
 public static List <T> GetEntityList <T>(DataRowCollection dataRowCollection, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.DataCommon.GetEntityList <T>(dataRowCollection, smartMappingType));
 }
Пример #6
0
        /// <summary>
        /// 根据映射方式获取实体或匿名对象的字段以及对应值的 Dictionary 列表
        /// </summary>
        /// <param name="item">实体或匿名实体</param>
        /// <param name="smartMappingType">映射方式</param>
        /// <returns>字段或属性名称,值列表</returns>
        public static Dictionary <string, object> GetColumnDic(object item, FrameMappingType smartMappingType)
        {
            Type itemType = item.GetType();
            Dictionary <string, object> list = new Dictionary <string, object>();

            switch (smartMappingType)
            {
            case FrameMappingType.FrameAttributePublic:         ////公有特性
            case FrameMappingType.FrameAttributePrivate:        ////私有特性
            case FrameMappingType.FrameAttribute:               ////根据特性映射,不区分公有私有
            {
                ////根据特性标识设置属性
                foreach (PropertyInfo propertyInfo in FrameReflection.GetPropertyInfoByAttribute <FrameColumnMappingAttributes>(itemType, smartMappingType))
                {
                    FrameColumnMappingAttributes attribute = Attribute.GetCustomAttribute(propertyInfo, typeof(FrameColumnMappingAttributes), false) as FrameColumnMappingAttributes;
                    object value = propertyInfo.GetValue(item, null);
                    list.Add(attribute.ColumnName, value);
                }
                ////根据特性标识设置字段
                foreach (FieldInfo fieldInfo in FrameReflection.GetFieldInfoByAttribute <FrameColumnMappingAttributes>(itemType, smartMappingType))
                {
                    FrameColumnMappingAttributes attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(FrameColumnMappingAttributes), false) as FrameColumnMappingAttributes;
                    object value = fieldInfo.GetValue(item);
                    list.Add(attribute.ColumnName, value);
                }
            }

            break;

            case FrameMappingType.XmlElementPublic:         ////公有XmlElement
            case FrameMappingType.XmlElementPrivate:        ////私有XmlElement
            case FrameMappingType.XmlElement:               ////根据XmlElement映射,不区分公有私有
            {
                ////根据特性标识设置属性
                foreach (PropertyInfo propertyInfo in FrameReflection.GetPropertyInfoByAttribute <System.Xml.Serialization.XmlElementAttribute>(itemType, smartMappingType))
                {
                    System.Xml.Serialization.XmlElementAttribute attribute = Attribute.GetCustomAttribute(propertyInfo, typeof(System.Xml.Serialization.XmlElementAttribute), false) as System.Xml.Serialization.XmlElementAttribute;
                    object value = propertyInfo.GetValue(item, null);
                    list.Add(attribute.ElementName, value);
                }
                ////根据特性标识设置字段
                foreach (FieldInfo fieldInfo in FrameReflection.GetFieldInfoByAttribute <System.Xml.Serialization.XmlElementAttribute>(itemType, smartMappingType))
                {
                    System.Xml.Serialization.XmlElementAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(System.Xml.Serialization.XmlElementAttribute), false) as System.Xml.Serialization.XmlElementAttribute;
                    object value = fieldInfo.GetValue(item);
                    list.Add(attribute.ElementName, value);
                }
            }

            break;

            case FrameMappingType.Field:                ////根据字段映射,私有公有均可
            case FrameMappingType.FieldPrivate:         ////根据私有字段映射
            case FrameMappingType.FieldPublic:          ////根据公有字段映射
            {
                foreach (FieldInfo fieldInfo in FrameReflection.GetFieldInfos(itemType, smartMappingType))
                {
                    object value = fieldInfo.GetValue(item);
                    list.Add(fieldInfo.Name, value);
                }
            }

            break;

            case FrameMappingType.Property:                 ////根据属性映射   私有公有均可
            case FrameMappingType.PropertyPublic:           ////根据公有属性映射
            case FrameMappingType.ProertyPrivate:           ////根据私有属性映射
            {
                foreach (PropertyInfo propertyInfo in FrameReflection.GetPropertyInfos(itemType, smartMappingType))
                {
                    object value = propertyInfo.GetValue(item, null);
                    list.Add(propertyInfo.Name, value);
                }
            }

            break;
            }

            return(list);
        }
Пример #7
0
 /// <summary>
 /// 取某个实体或匿名类型的字段集合
 /// </summary>
 /// <param name="type">实体类型或匿名类型</param>
 /// <param name="frameMappingType">映射类型</param>
 /// <returns>字段数组</returns>
 public static FieldInfo[] GetFieldInfos(Type type, FrameMappingType frameMappingType)
 {
     return(type.GetFields(FrameReflection.GetBindingFlagsByFrameMappingType(frameMappingType)));
 }
Пример #8
0
 /// <summary>
 /// 提供修改传入实体的方法
 /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
 /// 默认使用框架的数据库连接
 /// </summary>
 /// <param name="frameMappingType">自定义的 映射方式</param>
 /// <returns>返回影响的 行数</returns>
 public int Update(FrameMappingType frameMappingType)
 {
     return(FrameEntityBLL.Update(this, FrameWork.Core.DataCommon.DataBaseConnectionString, FrameWork.Core.DataCommon.FrameDataBaseType, frameMappingType));
 }
Пример #9
0
 /// <summary>
 /// 由一个DataTable返回一个实体列表
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataTable">数据表</param>
 /// <param name="smartMappingType">反射的方式</param>
 /// <returns>反射后的实体列表</returns>
 internal static List <T> GetEntityList <T>(DataTable dataTable, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.FrameData.FrameDataBase.GetEntityList <T>(dataTable, smartMappingType));
 }
Пример #10
0
 /// <summary>
 /// 提供修改传入实体的方法
 /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
 /// 默认使用框架的数据库连接
 /// </summary>
 /// <param name="item">要修改的 实体</param>
 /// <param name="frameMappingType">自定义的 映射方式</param>
 /// <returns>返回影响的 行数</returns>
 internal static int Update(object item, FrameMappingType frameMappingType)
 {
     return(Update(item, FrameWork.Core.DataCommon.DataBaseConnectionString, FrameWork.Core.DataCommon.FrameDataBaseType, frameMappingType));
 }
Пример #11
0
 /// <summary>
 /// 提供将提供的实体添加到数据库的方法
 /// </summary>
 /// <param name="connectionString">自定应的连接字符串</param>
 /// <param name="dataBaseType">自定应数据库类型</param>
 /// <param name="frameMappingType">所应用的映射类型</param>
 /// <returns>返回影响的行数</returns>
 public int Add(string connectionString, FrameData.DataBaseType dataBaseType, FrameMappingType frameMappingType)
 {
     return(FrameEntityBLL.Add(this, connectionString, dataBaseType, frameMappingType));
 }
Пример #12
0
        /// <summary>
        /// 提供将提供的实体添加到数据库的方法
        /// </summary>
        /// <param name="item">增加的实体</param>
        /// <param name="connectionString">自定应的连接字符串</param>
        /// <param name="dataBaseType">自定应数据库类型</param>
        /// <param name="frameMappingType">所应用的映射类型</param>
        /// <returns>返回影响的行数</returns>
        internal static int Add(object item, string connectionString, FrameData.DataBaseType dataBaseType, FrameMappingType frameMappingType)
        {
            Dictionary <string, object> columnDic = FrameData.FrameDataBase.GetColumnDic(item, frameMappingType);
            string insertSql = FrameGenerateSql.GenerateInsertSql(item.GetType().ToString(), columnDic, dataBaseType);

            return(FrameData.FrameDataBase.ExecuteNonQuery(connectionString, insertSql, System.Data.CommandType.Text, FrameDataBase.GetParameters(columnDic, dataBaseType), dataBaseType));
        }
Пример #13
0
        /// <summary>
        /// 提供修改传入实体的方法
        /// 条件为主键相同,该实体必须有且仅有一个字段被特性 [PrimaryKeyAttribute] 标识为主键
        /// </summary>
        /// <param name="item">要修改的 实体</param>
        /// <param name="connectionString">自定应的 连接字符串</param>
        /// <param name="dataBaseType">自定应 数据库类型</param>
        /// <param name="frameMappingType">所应用的 映射类型</param>
        /// <returns>返回影响的行数</returns>
        internal static int Update(object item, string connectionString, FrameData.DataBaseType dataBaseType, FrameMappingType frameMappingType)
        {
            Dictionary <string, object> columnDic     = FrameData.FrameDataBase.GetColumnDic(item, frameMappingType);
            Dictionary <string, object> primaryKeyDic = FrameData.FrameDataBase.GetColumnDicByUserAttribute <CoreAttribute.PrimaryKeyAttribute>(item, "PrimaryKeyName");

            if (primaryKeyDic.Count > 1)
            {
                throw new Exception(FrameWork.Core.Resources.Exceptions.FrameCHExceptionResource.__FrameEntityPrimaryKeyToMary);
            }
            if (primaryKeyDic.Count < 1)
            {
                throw new Exception(FrameWork.Core.Resources.Exceptions.FrameCHExceptionResource.__FrameEntityPrimaryKeyNull);
            }
            string updateSql = FrameGenerateSql.GenerateUpdateSql(item.GetType().ToString(), primaryKeyDic.First().Key, columnDic, dataBaseType);

            return(FrameData.FrameDataBase.ExecuteNonQuery(connectionString, updateSql, System.Data.CommandType.Text, FrameDataBase.GetParameters(columnDic, dataBaseType), dataBaseType));
        }
Пример #14
0
 /// <summary>
 /// 由一个DataTable返回一个实体列表
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataTable">数据表</param>
 /// <param name="smartMappingType">反射的方式</param>
 /// <returns>反射后的实体列表</returns>
 internal static List <T> GetEntityList <T>(DataTable dataTable, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.DataCommon.GetEntityList <T>(dataTable.Rows, smartMappingType));
 }
Пример #15
0
        /// <summary>
        /// 由一行数据生成一个实体
        /// </summary>
        /// <typeparam name="T">目标实体类型</typeparam>
        /// <param name="dataRow">数据行</param>
        /// <param name="smartMappingType">反射方式</param>
        /// <param name="item">已实例化的实体</param>
        /// <param name="propertyInfos">属性</param>
        /// <param name="fieldInfos">字段</param>
        private static void GetEntity <T>(this DataRow dataRow, FrameMappingType smartMappingType, ref T item, PropertyInfo[] propertyInfos = null, FieldInfo[] fieldInfos = null)
        {
            Type itemType = item.GetType();

            switch (smartMappingType)
            {
            case FrameMappingType.FrameAttributePublic:         ////在公有字段或属性中查找特性
            case FrameMappingType.FrameAttributePrivate:        ////在私有字段或属性中查找特性
            case FrameMappingType.FrameAttribute:               ////在所有字段或属性中查找特性
            {
                ////设置属性的值

                foreach (PropertyInfo propertyInfo in propertyInfos = propertyInfos != null ? propertyInfos : FrameReflection.GetPropertyInfoByAttribute <FrameColumnMappingAttributes>(itemType, smartMappingType))
                {
                    FrameColumnMappingAttributes attribute = Attribute.GetCustomAttribute(propertyInfo, typeof(FrameColumnMappingAttributes), false) as FrameColumnMappingAttributes;
                    if (dataRow.Table.Columns.Contains(attribute.ColumnName))
                    {
                        object value = dataRow[attribute.ColumnName];
                        if (value == null || value.ToString().Trim() == string.Empty)
                        {
                            propertyInfo.SetValue(item, attribute.DefaultVale, null);
                        }
                        else
                        {
                            propertyInfo.SetValue(item, (value.GetType() == propertyInfo.PropertyType ? value : FrameReflection.ConvertTo(value.ToString().Trim(), propertyInfo.PropertyType)), null);
                        }
                    }
                    else
                    {
                        propertyInfo.SetValue(item, attribute.DefaultVale, null);
                    }
                }
                ////设置字段的值
                foreach (FieldInfo fieldInfo in fieldInfos = fieldInfos != null ? fieldInfos : FrameReflection.GetFieldInfoByAttribute <FrameColumnMappingAttributes>(itemType, smartMappingType))
                {
                    FrameColumnMappingAttributes attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(FrameColumnMappingAttributes), false) as FrameColumnMappingAttributes;
                    if (dataRow.Table.Columns.Contains(attribute.ColumnName))
                    {
                        object value = dataRow[attribute.ColumnName];
                        if (value == null || value.ToString().Trim() == string.Empty)
                        {
                            fieldInfo.SetValue(item, attribute.DefaultVale);
                        }
                        else
                        {
                            fieldInfo.SetValue(item, (value.GetType() == fieldInfo.FieldType ? value : FrameReflection.ConvertTo(value.ToString().Trim(), fieldInfo.FieldType)));
                        }
                    }
                    else
                    {
                        fieldInfo.SetValue(item, attribute.DefaultVale);
                    }
                }
            }

            break;

            case FrameMappingType.XmlElement:
            case FrameMappingType.XmlElementPrivate:
            case FrameMappingType.XmlElementPublic:
            {
                ////设置属性的值
                foreach (PropertyInfo propertyInfo in propertyInfos = propertyInfos != null ? propertyInfos : FrameReflection.GetPropertyInfoByAttribute <System.Xml.Serialization.XmlElementAttribute>(itemType, smartMappingType))
                {
                    System.Xml.Serialization.XmlElementAttribute attribute = Attribute.GetCustomAttribute(propertyInfo, typeof(System.Xml.Serialization.XmlElementAttribute), false) as System.Xml.Serialization.XmlElementAttribute;
                    if (dataRow.Table.Columns.Contains(attribute.ElementName))
                    {
                        object value = dataRow[attribute.ElementName];
                        if (value == null || value.ToString().Trim() == string.Empty)
                        {
                            propertyInfo.SetValue(item, null, null);
                        }
                        else
                        {
                            propertyInfo.SetValue(item, (value.GetType() == propertyInfo.PropertyType ? value : FrameReflection.ConvertTo(value.ToString().Trim(), propertyInfo.PropertyType)), null);
                        }
                    }
                    else
                    {
                        propertyInfo.SetValue(item, null, null);
                    }
                }
                ////设置字段的值
                foreach (FieldInfo fieldInfo in fieldInfos = fieldInfos != null ? fieldInfos : FrameReflection.GetFieldInfoByAttribute <System.Xml.Serialization.XmlElementAttribute>(itemType, smartMappingType))
                {
                    System.Xml.Serialization.XmlElementAttribute attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(System.Xml.Serialization.XmlElementAttribute), false) as System.Xml.Serialization.XmlElementAttribute;
                    if (dataRow.Table.Columns.Contains(attribute.ElementName))
                    {
                        object value = dataRow[attribute.ElementName];
                        if (value == null || value.ToString().Trim() == string.Empty)
                        {
                            fieldInfo.SetValue(item, null);
                        }
                        else
                        {
                            fieldInfo.SetValue(item, (value.GetType() == fieldInfo.FieldType ? value : FrameReflection.ConvertTo(value.ToString().Trim(), fieldInfo.FieldType)));
                        }
                    }
                    else
                    {
                        fieldInfo.SetValue(item, null);
                    }
                }
            }

            break;

            case FrameMappingType.Field:        ////按字段映射,不区分公有私有
            case FrameMappingType.FieldPrivate: ////按私有字段映射
            case FrameMappingType.FieldPublic:  ////按公有字段映射
            {
                ////设置字段的值
                foreach (FieldInfo fieldInfo in fieldInfos = fieldInfos != null ? fieldInfos : FrameReflection.GetFieldInfos(itemType, smartMappingType))
                {
                    if (dataRow.Table.Columns.Contains(fieldInfo.Name))
                    {
                        object value = dataRow[fieldInfo.Name];
                        if (value != null && value.ToString().Trim() != string.Empty)
                        {
                            fieldInfo.SetValue(item, (value.GetType() == fieldInfo.FieldType ? value : FrameReflection.ConvertTo(value.ToString(), fieldInfo.FieldType)));
                        }
                    }
                }
            }

            break;

            case FrameMappingType.Property:
            case FrameMappingType.ProertyPrivate:
            case FrameMappingType.PropertyPublic:
            {
                ////设置属性的值
                foreach (PropertyInfo propertyInfo in propertyInfos = propertyInfos != null ? propertyInfos : FrameReflection.GetPropertyInfos(itemType, smartMappingType))
                {
                    if (dataRow.Table.Columns.Contains(propertyInfo.Name))
                    {
                        object value = dataRow[propertyInfo.Name];
                        if (value != null && value.ToString().Trim() != string.Empty)
                        {
                            propertyInfo.SetValue(item, (value.GetType() == propertyInfo.PropertyType ? value : FrameReflection.ConvertTo(value.ToString(), propertyInfo.PropertyType)), null);
                        }
                    }
                }
            }

            break;
            }
        }
Пример #16
0
 /// <summary>
 /// 根据不同的映射类型及数据库类型返回实体对象的Parameter参数列表
 /// </summary>
 /// <param name="item">实体或匿名实体</param>
 /// <param name="smartDataBaseType">数据库类型</param>
 /// <param name="smartMappingType">映射方式</param>
 /// <returns>Parameter参数列表</returns>
 public static List <DbParameter> GetParameters(object item, FrameWork.Core.FrameData.DataBaseType smartDataBaseType, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.FrameData.FrameDataBase.GetParameters(item, smartDataBaseType, smartMappingType));
 }
Пример #17
0
 /// <summary>
 /// 根据不同的映射类型及数据库类型返回实体对象的Parameter参数列表
 /// </summary>
 /// <param name="item">实体或匿名实体</param>
 /// <param name="smartDataBaseType">数据库类型</param>
 /// <param name="smartMappingType">映射方式</param>
 /// <returns>Parameter参数列表</returns>
 public static List <DbParameter> GetParameters(object item, DataBaseType smartDataBaseType, FrameMappingType smartMappingType)
 {
     return(GetParameters(GetColumnDic(item, smartMappingType), smartDataBaseType));
 }
Пример #18
0
 /// <summary>
 /// 由一行数据生成一个实体
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataRow">数据行</param>
 /// <param name="smartMappingType">反射方式</param>
 /// <returns>反射后的实体</returns>
 public static T GetEntity <T>(DataRow dataRow, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.FrameData.FrameDataBase.GetEntity <T>(dataRow, smartMappingType));
 }
Пример #19
0
 /// <summary>
 /// 根据映射方式取某个实体或匿名类型的属性集合
 /// </summary>
 /// <param name="type">实体类型或匿名类型</param>
 /// <param name="frameMappingType">映射方式</param>
 /// <returns>属性数组</returns>
 public static PropertyInfo[] GetPropertyInfos(Type type, FrameMappingType frameMappingType)
 {
     return(type.GetProperties(FrameReflection.GetBindingFlagsByFrameMappingType(frameMappingType)));
 }
Пример #20
0
 /// <summary>
 /// 由一行数据生成一个实体,获取第一行数据
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataRowCollection">数据行的集合</param>
 /// <param name="smartMappingType">反射方式</param>
 /// <returns>反射后的实体</returns>
 public static T GetEntity <T>(DataRowCollection dataRowCollection, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.FrameData.FrameDataBase.GetEntity <T>(dataRowCollection[0], smartMappingType));
 }
Пример #21
0
        /// <summary>
        /// 获取某个实体或匿名类型的由某特性标识的属性集合,包括公共属性和非公共属性
        /// </summary>
        /// <typeparam name="TAttribute">特性的类型</typeparam>
        /// <param name="type">实体或匿名对象的类型</param>
        /// <param name="frameMappingType">应用的反射类型</param>
        /// <returns>属性数组</returns>
        public static PropertyInfo[] GetPropertyInfoByAttribute <TAttribute>(Type type, FrameMappingType frameMappingType) where TAttribute : Attribute
        {
            List <PropertyInfo> listPropertyinfo = new List <PropertyInfo>();

            foreach (PropertyInfo propertyinfo in GetPropertyInfos(type, frameMappingType))
            {
                TAttribute attribute = System.Attribute.GetCustomAttribute(propertyinfo, typeof(TAttribute), false) as TAttribute;
                if (attribute != null)
                {
                    listPropertyinfo.Add(propertyinfo);
                }
            }

            return(listPropertyinfo.ToArray());
        }
Пример #22
0
 /// <summary>
 /// 由一行数据生成一个实体,获取第一行数据
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataTable">数据表</param>
 /// <param name="smartMappingType">反射方式</param>
 /// <returns>反射后的实体</returns>
 public static T GetEntity <T>(DataTable dataTable, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.FrameData.FrameDataBase.GetEntity <T>(dataTable.Rows[0], smartMappingType));
 }
Пример #23
0
        /// <summary>
        /// 获取某个实体或匿名类型的方法
        /// </summary>
        /// <param name="type">实体或匿名类型</param>
        /// <param name="frameMappingType">映射类型</param>
        /// <returns>方法数组</returns>
        public static MethodInfo[] GetMethodInfoByMappingType(Type type, FrameMappingType frameMappingType)
        {
            BindingFlags bindingFlags = FrameReflection.GetBindingFlagsByFrameMappingType(frameMappingType);

            return(type.GetMethods(bindingFlags));
        }
Пример #24
0
 /// <summary>
 /// 由一行数据生成一个实体
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="dataRow">数据行</param>
 /// <param name="smartMappingType">反射方式</param>
 /// <returns>反射后的实体</returns>
 public static T GetEntity <T>(DataRow dataRow, FrameMappingType smartMappingType)
 {
     return(FrameWork.Core.DataCommon.GetEntity <T>(dataRow, smartMappingType));
 }