Skip to content

Commit 492f3ec

Browse files
committed
Proper type conversion.
1 parent f5bfc17 commit 492f3ec

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Provider/src/FirebirdSql.Data.FirebirdClient/FirebirdClient/FbDatabaseInfo.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ private T GetValue<T>(byte item)
473473
IscCodes.isc_info_end
474474
};
475475
var info = Connection.InnerConnection.Database.GetDatabaseInfo(items);
476-
return info.Any() ? (T)info[0]: default;
476+
return info.Any() ? ConvertValue<T>(info[0]): default;
477477
}
478478
private async Task<T> GetValueAsync<T>(byte item, CancellationToken cancellationToken = default)
479479
{
@@ -485,7 +485,7 @@ private async Task<T> GetValueAsync<T>(byte item, CancellationToken cancellation
485485
IscCodes.isc_info_end
486486
};
487487
var info = await Connection.InnerConnection.Database.GetDatabaseInfoAsync(items, cancellationToken).ConfigureAwait(false);
488-
return info.Any() ? (T)info[0] : default;
488+
return info.Any() ? ConvertValue<T>(info[0]) : default;
489489
}
490490

491491
private List<T> GetList<T>(byte item)
@@ -499,7 +499,7 @@ private List<T> GetList<T>(byte item)
499499
IscCodes.isc_info_end
500500
};
501501

502-
return (db.GetDatabaseInfo(items)).Cast<T>().ToList();
502+
return (db.GetDatabaseInfo(items)).Select(ConvertValue<T>).ToList();
503503
}
504504
private async Task<List<T>> GetListAsync<T>(byte item, CancellationToken cancellationToken = default)
505505
{
@@ -512,9 +512,11 @@ private async Task<List<T>> GetListAsync<T>(byte item, CancellationToken cancell
512512
IscCodes.isc_info_end
513513
};
514514

515-
return (await db.GetDatabaseInfoAsync(items, cancellationToken).ConfigureAwait(false)).Cast<T>().ToList();
515+
return (await db.GetDatabaseInfoAsync(items, cancellationToken).ConfigureAwait(false)).Select(ConvertValue<T>).ToList();
516516
}
517517

518+
static T ConvertValue<T>(object value) => value is IConvertible ? (T)Convert.ChangeType(value, typeof(T)) : (T)value;
519+
518520
#endregion
519521
}
520522
}

0 commit comments

Comments
 (0)