private static DataFieldMapTable GetMapTableByColumnNames <TEntity>(TEntity entity, MetaDataTable metaDataTable, params string[] columnNames) { DataFieldMapTable mapTable = new DataFieldMapTable(columnNames.Length); foreach (string columnName in columnNames) { string colName = columnName.Trim().ToLower(); if (!metaDataTable.Columns.ContainsKey(colName) || IsIgnored(metaDataTable.Columns[colName])) { continue; } var metaColumn = metaDataTable.Columns[colName]; mapTable.Add(metaColumn.Name, GetColumnValue(metaColumn, entity)); } return(mapTable); }
/// <summary> /// 获取实体属性与值的对应表集合。 /// </summary> /// <typeparam name="TEntity">实体对象类型</typeparam> /// <param name="entity">实体对象</param> /// <param name="entityName">实体名称</param> /// <param name="columnNames">属性列名称</param> /// <returns>实体属性与值的对应表集合</returns> public static DataFieldMapTable GetMapTable <TEntity>(TEntity entity, string entityName, params string[] columnNames) { var metaDataTable = new MetaDataTable(typeof(TEntity), entityName); if (columnNames != null && columnNames.Length > 0) { return(GetMapTableByColumnNames <TEntity>(entity, metaDataTable, columnNames)); } DataFieldMapTable mapTable = new DataFieldMapTable(metaDataTable.Columns.Count); foreach (string key in metaDataTable.Columns.Keys) { var metaColumn = metaDataTable.Columns[key]; if (IsIgnored(metaColumn)) { continue; } mapTable.Add(metaColumn.Name, GetColumnValue(metaColumn, entity)); } return(mapTable); }