Мне нужно было сделать то же самое, и я смотрел ТОЛЬКО таблицы, содержащие данные. Я узнал довольно быстро, что вы должны быть осторожны с тем, что вы отступаете отсюда, потому что данные глубоко вложены. Следующий запрос занял менее секунды для запуска на моем компьютере, и у меня есть приблизительно 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();
Спасибо, этот работал для меня, и это быстро. – Kamarey