This is a library for inspecting relational database schemas that support IDbConnection
so that you can present database objects in a UI of your choice. This is part of the internal tooling for a couple projects of mine SqlChartify and Postulate Query Helper. For example, this library powers this UI in Zinger:
This UI is populated in this LoadObjects method. The database objects themselves are retrieved in this short block which calls GetDbObjectsAsync:
private async Task RefreshAsync()
{
using (var cn = _getConnection.Invoke())
{
_objects = await Analyzers[_providerType].GetDbObjectsAsync(cn);
}
LoadObjects();
}
Please check out the unit tests to get a sense of what this does.
I'm planning for this to target multiple database platforms (MySQL, PostgreSQL), but I'm focusing exclusively on SQL Server for now since that's where I spend all my time, really.