Skip to content

Commit 5a48e9b

Browse files
committed
fix(mssql): improve GetSchemaTable metadata to prevent ConstraintException in DataTable.Load
1 parent a062191 commit 5a48e9b

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
<Authors>vkuttyp</Authors>
88
<PackageLicenseExpression>MIT</PackageLicenseExpression>
99
<RepositoryUrl>https://github.com/vkuttyp/CosmoSQLClient-Dotnet</RepositoryUrl>
10-
<Version>1.5.5</Version>
10+
<Version>1.5.6</Version>
1111
</PropertyGroup>
1212
</Project>

src/CosmoSQLClient.MsSql/MsSqlDataReader.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,30 @@ public override DataTable GetSchemaTable()
111111
dt.Columns.Add("NumericScale", typeof(short));
112112
dt.Columns.Add("DataType", typeof(Type));
113113
dt.Columns.Add("AllowDBNull", typeof(bool));
114+
dt.Columns.Add("IsKey", typeof(bool));
115+
dt.Columns.Add("IsUnique", typeof(bool));
116+
dt.Columns.Add("IsAutoIncrement", typeof(bool));
117+
dt.Columns.Add("BaseTableName", typeof(string));
118+
dt.Columns.Add("BaseColumnName", typeof(string));
114119

115120
var cols = CurrentSetColumns;
116121
if (cols != null)
117122
{
118123
for (int i = 0; i < cols.Count; i++)
119124
{
120125
var row = dt.NewRow();
121-
row["ColumnName"] = cols[i].Name;
122-
row["ColumnOrdinal"] = i;
123-
row["DataType"] = GetFieldType(i);
124-
row["AllowDBNull"] = cols[i].IsNullable;
126+
row["ColumnName"] = cols[i].Name;
127+
row["ColumnOrdinal"] = i;
128+
row["ColumnSize"] = -1; // Unknown
129+
row["NumericPrecision"] = (short)0;
130+
row["NumericScale"] = (short)0;
131+
row["DataType"] = GetFieldType(i);
132+
row["AllowDBNull"] = cols[i].IsNullable;
133+
row["IsKey"] = false;
134+
row["IsUnique"] = false;
135+
row["IsAutoIncrement"] = false;
136+
row["BaseTableName"] = string.Empty;
137+
row["BaseColumnName"] = cols[i].Name;
125138
dt.Rows.Add(row);
126139
}
127140
}

0 commit comments

Comments
 (0)