Before I run off and write my own version from scratch, is there an API that exposes the system views in SQL Server (e.g. sys.tables and sys.procedures) to C#?
            Asked
            
        
        
            Active
            
        
            Viewed 380 times
        
    1 Answers
5
            As you suggest, you can use ADO.NET to query the system catalogs.
You could also use LINQ to SQL:
Open Server Explorer in Visual Studio. Open a connection to the server.
Right-click the server and choose Change View > Object Type.
Under System Tables and User Tables, you can drag a system object onto a .dbml surface.
For database specific objects use SMO (SQL Server Management Objects)
In C# add  Microsoft.SqlServer.Management.Smo 
SQL Server Management Objects (SMO) Programming Guide
This might be of use: Reference Microsoft.SqlServer.Smo.dll
        Community
        
- 1
 - 1
 
        Mitch Wheat
        
- 295,962
 - 43
 - 465
 - 541
 
- 
                    SMO objects are awesome. They even have a decent caching system so I don't waste cycles fetching the same information twice. – Jonathan Allen Aug 06 '14 at 05:05