public static void DumpChanges(ChangeSet changeSet) {
if (changeSet.Deletes.Count > 0) {
Console.WriteLine("** DELETES **");
foreach (var del in changeSet.Deletes) {
	Console.WriteLine(Dump(del));
}
}
if (changeSet.Updates.Count > 0) {
Console.WriteLine("** UPDATES **");
foreach (var upd in changeSet.Updates) {
	Console.WriteLine(Dump(upd));
}
}
if (changeSet.Inserts.Count > 0) {
Console.WriteLine("** INSERTS **");
foreach (var ins in changeSet.Inserts) {
	Console.WriteLine(Dump(ins));
}
}
Console.WriteLine(changeSet);
}

public static string Dump(this object data) {
if (data is Customer) {
Customer customer = (Customer) data;
return String.Format(
"CustomerID={0}, CompanyName={1}",
customer.CustomerID, customer.CompanyName);
}
else {
throw new NotSupportedException(
String.Format(
"Pro {0} nen vpis podporovn.",
data.GetType().FullName) );
}
}
