DataTableReader.GetSchemaTable in Mono always has an Expression column with a value of an empty string which means ProtoDataColumnFactory.GetColumns never returns any columns unless serialization of calculated columns is enabled -- check for DBNull *and* string.Empty to fix.