diff --git a/Simple.Data.SqlCe40/SqlCe40SchemaProvider.cs b/Simple.Data.SqlCe40/SqlCe40SchemaProvider.cs index b50c05a3..13697565 100644 --- a/Simple.Data.SqlCe40/SqlCe40SchemaProvider.cs +++ b/Simple.Data.SqlCe40/SqlCe40SchemaProvider.cs @@ -37,8 +37,10 @@ private static Table SchemaRowToTable(DataRow row) public IEnumerable GetColumns(Table table) { - if (table == null) throw new ArgumentNullException("table"); - return GetColumnsDataTable(table).AsEnumerable().Select(row => SchemaRowToColumn(table, row)); + foreach (var row in GetColumnsDataTable(table).AsEnumerable()) + { + yield return new Column(row["COLUMN_NAME"].ToString(), table); + } } private static Column SchemaRowToColumn(Table table, DataRow row) @@ -134,11 +136,7 @@ public Type DataTypeToClrType(string dataType) private DataTable GetColumnsDataTable(Table table) { - var columnSelect = - string.Format( - "SELECT name, is_identity from sys.columns where object_id = object_id('{0}.{1}', 'TABLE')", - table.Schema, table.ActualName); - return SelectToDataTable(columnSelect); + return SelectToDataTable("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + table.ActualName + "'"); } private DataTable GetPrimaryKeys()