private static IEnumerable <object> ColumnReferences(UnpredictableColumnSource.UnpredictableColumn column, List <SnapshotTableDifferences> tableDiffs)
 {
     foreach (var refCol in column.ReferencingColumns)
     {
         var tableForValues = tableDiffs.SingleOrDefault(d => d.TableDefinition.TableName == refCol.SourceTable.TableName);
         if (tableForValues != null)
         {
             foreach (var value in ColumnValues(column.Column.Name, tableForValues))
             {
                 yield return(value);
             }
         }
     }
 }
        private static ColumnValueSet ColumnValues(UnpredictableColumnSource table, List <SnapshotTableDifferences> tableDiffs, UnpredictableColumnSource.UnpredictableColumn column)
        {
            var           tableForValues = tableDiffs.SingleOrDefault(d => d.TableDefinition.TableName == table.Table.TableName);
            List <object> values         = null;

            if (tableForValues != null)
            {
                values = ColumnValues(column.Column.Name, tableForValues).ToList();
            }

            var references = ColumnReferences(column, tableDiffs).Distinct().ToList();

            return(new ColumnValueSet(table.Table, column.Column, values ?? new List <object>(), references ?? new List <object>()));
        }