using System.Data.SqlClient;
using System.Collections.Generic;
public DateTime OrderDate
public List<OrderDetail> OrderDetails
public static void Main()
string sql = "SELECT TOP 10 * FROM Orders AS A INNER JOIN OrderDetails AS B ON A.OrderID = B.OrderID;";
using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
var orderDictionary = new Dictionary<int, Order>();
var list = connection.Query<Order, OrderDetail, Order>(sql, (order, orderDetail) =>
if (!orderDictionary.TryGetValue(order.OrderID, out orderEntry))
orderEntry.OrderDetails = new List<OrderDetail>();
orderDictionary.Add(orderEntry.OrderID, orderEntry);
orderEntry.OrderDetails.Add(orderDetail);
}, splitOn: "OrderDetailID").Distinct().ToList();
Console.WriteLine("Orders Count:" + list.Count);
FiddleHelper.WriteTable(list);
FiddleHelper.WriteTable(list.First().OrderDetails);