Могу ли я заполнить несколько таблиц из одного poco?
Я расследую использование ORM для доступа к нашему DataVault. До сих пор PetaPoco выглядит наиболее многообещающе, но я не связан с этим.
Большая часть идентифицируемого нами объекта встроена в комбинацию Hub и Sat, где Hub содержит BusinessKey, а Sat - дополнительную информацию. В poco это будет выглядеть так (упрощенно):
// hub: H_Client
// sat: HS_Client
class Client
{
public string ClientId_BK { get; set; } // BusinessKey in the Hub
public long H_Client_SeqId { get; set; } // PK/Identity in Hub, FK in the Sat
public string? Address { get; set; } // additional attr. in the Sat
public string? Phone { get; set; } // additional attr. in the Sat
/* and a lot more attributes */
}
Таким образом, всякий раз, когда мы говорим о клиенте, он всегда подразумевает комбинацию хаба с его субботой. Обычно ORM взаимодействует по одной таблице за раз, но это не очень полезно для хранилищ данных: вы всегда хотите запросить или вставить концентратор с соответствующим Sat.
Можно ли обновить или вставить в несколько таблиц из одного poco?
1 ответ
Получить информацию с помощью ResultColumn
, но для вставки / обновления вам необходимо добавить собственную логику (вставка в обе таблицы с транзакцией и т. д.).
Помните, что такого рода небольшие эффективные ORM должны быть простыми.