Могу ли я заполнить несколько таблиц из одного 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 должны быть простыми.

Другие вопросы по тегам