Я пытаюсь использовать SqlBulkCopy
с ядром. net, но поскольку я использую столбец геометрии, следующий код требует Microsoft.SqlServer.Types, который не полностью совместим с ядром. net, особенно на Linux .
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT TOP 0 * FROM " + tableName, sqlConnection))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
Без зависимости Fill()
не работает, так как не может найти тип.
Обычно я использую NetTopologySuite.IO.SqlServerBytes, но в этом случае происходит ошибка c где-то в SqlDataAdapter, и я не знаю, как его перезаписать.
Я пытался создать столбцы DataTable вручную без использования Fill()
, но похоже, какой бы тип я ни указывал, позже я получаю сообщение об ошибке в SqlBulkCopy .
Данное значение типа XYZ из источника данных не может быть преобразовано в тип udt указанного целевого столбца
Я пробовал с SqlBytes
и byte[]
, но ничего не работает.
Обновление 1: Я получил его, работая с вручную созданным DataTable с byte[]
в качестве типа для этого столбца.
Тем не менее было бы неплохо ч Найдите способ использовать adapter.Fill(dt);
или аналогичный, чтобы мне не приходилось вручную перечислять все столбцы.