llblgenpro

LLBLGen Pro Self Join with Query Spec


I have a simple Entity

public Employee
    {
      public int Id {get; set;}
      public string Name {get; set;}
      public int ManagerId {get; set;}
    }

then I have an LLBLGen Query

var employeeQuery = qf.Create()
            .From(qf.Employee
                .LeftJoin(EmployeeEntity.Relations.EmployeeEntityUsingManagerId))
                .Select(()=> new RptEmployee()
                  {
                     Id = EmployeeFields.Id.ToValue<int>(),
                     EmployeeName = EmployeeFields.Name.ToValue<string>(),
                     ManagerName = HOW?
                  });

How do I get the managername from the self joined query?


Solution

  • In this case you must use aliases. Approx code:

    var employeeQuery = qf.Create()
        .From(qf.Employee
        .LeftJoin(EmployeeEntity.Relations.EmployeeEntityUsingManagerId, "emp", "man"))
        .Select(() => new RptEmployee()
            {
                Id = EmployeeFields.Id.Source("emp").ToValue<int>(),
                EmployeeName = EmployeeFields.Name.Source("emp").As("EmployeeName").ToValue<string>(),
                ManagerName = EmployeeFields.Name.Source("man").As("ManagerName").ToValue<string>()
            });