Обнаружена ошибка типа, которая, кажется, противоречит документам ...
Создана таблица postgresql на моем локальном компьютере с 2 столбцами (SystemID [как uuid], TrackingIDs [как бит [] с размером 256)]).
В C # ASP.NET я получаю сообщение об ошибке:
42804: столбец "TrackingIDs" имеет тип bit [], но выражение имеет тип bit
Я не вижу опции для "NpgsqlDbType.BitArray", но в документах говорится, что "NpgsqlDbType.Bit" должен принимать тип объекта C # BitArray: https://www.npgsql.org/doc/types/basic.html
Вот пример моего C #код:
using (var connection = new NpgsqlConnection(DBUtils.connectionString))
{
try
{
connection.Open();
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = "INSERT INTO hosts VALUES(@SystemID, @TrackingIDs)";
cmd.Parameters.AddWithValue("@SystemID", NpgsqlDbType.Uuid, systemID);
cmd.Parameters.AddWithValue("@TrackingIDs", NpgsqlDbType.Bit, new BitArray(256));
return cmd.ExecuteNonQuery() != 0 ? "Success" : "Failed";
}
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
connection.Close();
}
}
pgAdmin4: 3.6
Версия Npgsql: 4.0.4
Версия PostgreSQL: 11.1
Операционная система: Win10 x64
ASP.NET: .NET Core 2.2
РЕДАКТИРОВАТЬ: отсутствует "NpgsqlDbType.Bit | NpgsqlDbType.Array".Однако теперь я получаю:
22026: длина строки битов 1 не соответствует типу бит (256)