// Table Aliases
var t0 = new Orders().AsQueryable();
var t1 = new OrderDetails().AsQueryable();
var sql = Odb.SQL.Select(x =>
x.From(t0)
.LeftJoin(t1, t1.OrderID == t0.OrderID)
.Top(10)
);
var rows = sql.ExecuteReaderOneToMany<Orders, OrderDetails>(
connection,
// GroupBy => New row is returned since these key values are changed.
(T1) => new[] { T1.OrderID.ToString() },
// Combine
(T1, T2) => {
if (T1.Details == null) T1.Details = new List<OrderDetails>();
T1.Details.Add(t2);
},
// Split => Start points of generic parameters except first. (.. T2...T3...Tn)
new[] { "OrderDetailID" }
).ToList();
zejRst