forked from ThatRendle/Simple.Data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDbConnectionExtensions.cs
More file actions
29 lines (24 loc) · 878 Bytes
/
DbConnectionExtensions.cs
File metadata and controls
29 lines (24 loc) · 878 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Text;
namespace Simple.Data.Ado
{
public static class DbConnectionExtensions
{
public static DataTable GetSchema(this IDbConnection connection, string collectionName, params string[] constraints)
{
var adoConnection = connection as DbConnection;
if (adoConnection != null)
return adoConnection.GetSchema(collectionName, constraints);
var schemaGetter = connection as ISchemaGetter;
if (schemaGetter != null)
{
return schemaGetter.GetSchema(collectionName, constraints);
}
throw new InvalidOperationException(string.Format("The IDbConnection type {0} does not provide a GetSchema method.", connection.GetType().Name));
}
}
}