У меня было это отношение. relationDapper - QueryMultiple - 3 таблицы
Как получить информацию в сущности заказа и объекте-фактуре с объектом QueryMultiple?
Спасибо-х
У меня было это отношение. relationDapper - QueryMultiple - 3 таблицы
Как получить информацию в сущности заказа и объекте-фактуре с объектом QueryMultiple?
Спасибо-х
QueryMultiple
используются, когда вы обращаетесь несколько наборов результатов, т.е. мультипликатора select
, как:
select * from Order where [email protected]
select * from Invoice where Id = (...probably some sub-query)
На данный момент нет встроенного API, чтобы сшить этот тип запроса вместе ; вместо того, чтобы вы могли бы сделать что-то вроде:
using(var multi = conn.QueryMultiple(...)) {
var order = multi.ReadSingle<Order>();
order.Invoice = multi.ReadSingleOrDefault<Invoice>(); // could be null if 0 rows
return order;
}
Я хотел бы добавить улучшенный API для этого сценария, но это очень неудобно, чтобы выразить «присоединиться к этому к тому, что с помощью этого свойства, как ассоциации, где {это }. {SomeMember} равно {that}. {SomeOtherMember} ".
Однако, если вы на самом деле делаете один запрос, например:
select o.*, i.*
from Order o
left outer join Link l on ...
left outer join Invoice i on ...
where o.Id = @id
, то вы можете использовать различные Query<,...,>
перегрузки; например:
int id = ...
var order = conn.Query<Order, Invoice, Order>(sql,
(x,y) => {x.Invoice = y; return x;}, args: new { id }, splitOn: "NumOrder").Single();