Этот код отлично работал в .NET 6:
Код: Выделить всё
using (var adapter = new NpgsqlDataAdapter(sql, context.Database.GetDbConnection() as NpgsqlConnection))
{
var dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
Чтение как «System. Object' не поддерживается для полей, имеющих DataType
Подробное исключение:
at Npgsql.Internal.AdoSerializerHelpers.g__ThrowReadingNotSupported|0_0 (тип типа, String displayName, внутреннее исключение)
в Npgsql.Internal.AdoSerializerHelpers.GetTypeInfoForReading(тип типа, PostgresType postgresType, параметры PgSerializerOptions)
в Npgsql.BackendMessages.FieldDescription.g__GetInfoSlow|50_0( Тип типа, ColumnInfo& LastColumnInfo)
в Npgsql.BackendMessages.FieldDescription.GetInfo(тип типа, ColumnInfo& LastColumnInfo)
в Npgsql.BackendMessages.FieldDescription.get_ObjectOrDefaultInfo()
в Npgsql.BackendMessages.FieldDescription.get_FieldType()
в Npgsql.NpgsqlDataReader.GetFieldType(порядковый номер Int32)
в System.Data.ProviderBase.SchemaMapping. SetupSchemaWithoutKeyInfo (MissingMappingAction MappingAction, MissingSchemaAction SchemaAction, логическое значение getData, DataColumn родительский столбец, объект ChapterValue)
at System.Data.ProviderBase.SchemaMapping..ctor (адаптер DataAdapter, набор данных DataSet, DataTable datatable, DataReaderContainer dataReader, Boolean keyInfo, SchemaType SchemaType, String sourceTableName, BooleangetData, DataColumnparentChapterColumn, ObjectparentChapterValue)
at System.Data.Common.DataAdapter.FillMappingInternal(набор данных DataSet, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 SchemaCount , DataColumn ParentChapterColumn, Object ParentChapterValue)
at System.Data.Common.DataAdapter.FillMapping(Набор данных DataSet, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 SchemaCount, DataColumn родительскийChapterColumn, Object ParentChapterValue)
at System.Data.Common.DataAdapter.FillFromReader(набор данных DataSet, таблица данных DataTable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn родительский столбец, Object родительский элемент)
at System. .Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
at System.Data.Common.DbDataAdapter.FillInternal(набор данных DataSet, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior)
at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, команда IDbCommand, поведение CommandBehavior )
в System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
Любая помощь приветствуется.
Подробнее здесь: https://stackoverflow.com/questions/789 ... -during-ad