Dapper не заботится о ваших объединениях, а Dapper заботится о табличной структуре. Каркас по умолчанию использует столбец идентификатора или пользовательский SplitOn
для анализа табличной структуры в объект. Итак, табличная структура выглядит следующим образом:
Tabular:
Id | A | Id | B | Id | C | Id | D | Id | E | Id | F | Id | G | Id | H
Вы говорите Dapper, что существует восемь сущностей, Dapper делает это с помощью столбца id. Теперь, если у вас есть сущность, но она не требует абстрагирования таким образом, например, A, B и C должны быть в единой сущности, вы можете сказать Dapper не создавать для них отдельную сущность, выполнив следующее структура.
Tabular:
Id | A | B | C | Id | D | Id | E | Id | F | Id | G | Id | H
Я хочу подчеркнуть, что сущность должна представлять не таблицу, а объект, представляющий ваше намерение. Например, у пользователя может быть информация об адресе, но в базе данных они, вероятно, будут отдельными таблицами, но в вашем приложении они могут быть одним объектом.
Основываясь на таблицах данных, я предполагаю, что вы можете объединить пару без потери деловых намерений. Решение, основанное на разделении, решит вашу проблему, в противном случае я не уверен, как вы превысите функциональность семи разделений, встроенных в Dapper.