Как правильно сопоставить объекты POCO с InsertBinaryAsync ClickHouseC#

Место общения программистов C#
Anonymous
Как правильно сопоставить объекты POCO с InsertBinaryAsync ClickHouse

Сообщение Anonymous »

Я использую библиотеку ClickHouse.Driver в своем проекте .NET для вставки данных в ClickHouse. У меня есть класс POCO, и я хочу использовать метод InsertBinaryAsync для высокопроизводительной вставки.
Мне интересно, как правильно вводить столбцы и значения?

Например

Код: Выделить всё

public class CourierRow
{
public Guid Id { get; init; }
public string Name { get; init; } = string.Empty;
public decimal Price { get; init; }
public DateTime RandomTime { get; init; }
}

Код: Выделить всё

public class MyClickHouseService(IClickHouseClient clickHouseClient) : IMyClickHouseService
{
public async Task Add(CourierRow courierRow)
{
clickHouseClient.InsertBinaryAsync(
"couriers",
)
}
}
Мне не хочется делать это таким образом:

Код: Выделить всё

var columns = new[]{ "id", "name", "price", "random_time" };
var row = new object[] { orders.Id, orders.Name, orders.Price, orders.RandomTime };

await clickHouseClient.InsertBinaryAsync("couriers", columns, [row]);
Существуют ли какие-либо решения для автоматического сопоставления объекта без постоянного отражения?

Вернуться в «C#»