user-summary.vala 807 B

123456789101112131415161718192021222324
  1. using Invercargill.Expressions;
  2. using InvercargillSql.Orm;
  3. using InvercargillSql.Orm.Projections;
  4. /**
  5. * Simple projection demonstrating basic field selection from a single entity.
  6. */
  7. public class UserSummary : Object {
  8. public int64 user_id { get; set; }
  9. public string user_name { get; set; }
  10. public string email { get; set; }
  11. public UserSummary() {
  12. user_name = "";
  13. email = "";
  14. }
  15. public static void configure_projection(ProjectionBuilder<UserSummary> p) throws ProjectionError {
  16. p.source<User>("u")
  17. .select<int64?>("user_id", expr("u.id"), (x, v) => x.user_id = v)
  18. .select<string>("user_name", expr("u.name"), (x, v) => x.user_name = v)
  19. .select<string>("email", expr("u.email"), (x, v) => x.email = v);
  20. }
  21. }