/// <summary> /// Select 'SET' phrase from metadata. /// </summary> /// <param name="tableDef">The table defined.</param> /// <param name="data">The metadata.</param> /// <returns>The phrases.</returns> public static IEnumerable <APSqlSetPhrase> Select(APTableDef tableDef, object data) { Type typeColumnDef = typeof(APColumnDef); Type typeData = data.GetType(); foreach (var piColumn in tableDef.GetType().GetProperties()) { if (typeColumnDef.IsAssignableFrom(piColumn.PropertyType)) { var columnDef = (APColumnDef)piColumn.GetValue(tableDef, null); var piProp = typeData.GetProperty(columnDef.ColumnName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase); if (piProp != null) { yield return(new APSqlSetPhrase(columnDef, piProp.GetValue(data, null))); } } } }