| 1234567891011121314151617181920212223242526272829303132 |
- using InvercargillSql.Orm;
- using InvercargillSql.Orm.Projections;
- /**
- * Join projection demonstrating entity relationships across User, Order, and Product.
- */
- public class OrderDetail : Object {
- public int64 order_id { get; set; }
- public string user_name { get; set; }
- public string product_name { get; set; }
- public int64 quantity { get; set; }
- public double total { get; set; }
- public string status { get; set; }
-
- public OrderDetail() {
- user_name = "";
- product_name = "";
- status = "";
- }
-
- public static void configure_projection(ProjectionBuilder<OrderDetail> p) throws ProjectionError {
- p.source<User>("u")
- .join<Order>("o", "u.id == o.user_id")
- .join<Product>("p", "o.product_id == p.id")
- .select<int64?>("order_id", "o.id", (x, v) => x.order_id = v)
- .select<string>("user_name", "u.name", (x, v) => x.user_name = v)
- .select<string>("product_name", "p.name", (x, v) => x.product_name = v)
- .select<int64?>("quantity", "o.quantity", (x, v) => x.quantity = v)
- .select<double?>("total", "o.total", (x, v) => x.total = v)
- .select<string>("status", "o.status", (x, v) => x.status = v);
- }
- }
|