Мне нужно было сделать то же самое, и я искал ТОЛЬКО таблицы, содержащие данные. Я довольно быстро обнаружил, что вы должны быть осторожны с тем, что вы берете отсюда, потому что данные глубоко вложены Для выполнения запроса ниже потребовалось менее секунды, и у меня есть приблизительно 266 таблиц (не включая представления) в базе данных.
Я надеюсь, что это отвечает на ваш вопрос.
var list = this.Mapping.GetTables()
.Select(o => new {
TableName = o.TableName,
Type_ = o.RowType.Type,
IsEntity = o.RowType.IsEntity,
RowCount = this.GetTable(o.RowType.Type).Cast<object>().Count(),
})
.Where (o => o.IsEntity && o.RowCount > 0)
.ToList();
list.Dump();