Thank you daelmo for your response. Looks like I'm getting help from the whole support team
Below is the relevant code:
ASPX Code:
(abbreviated)
<llblgenpro:LLBLGenProDataSource2
ID="LLBLGenProDataSource2_1"
runat="server"
AdapterTypeName="XXXX.DAL.DatabaseSpecific.DataAccessAdapter, XXXX.CRM.DALDBSpecific"
EnableViewState="false"
EnablePaging=true
LivePersistence=false
SortingMode=ServerSide
OnPerformGetDbCount="Llblgen_PerfomGetDbCount"
OnPerformSelect="Llblgen_PerformSelect"
/>
asp:GridView runat="server" ID="Grid1">
<Columns>
<asp:BoundField HeaderText="Order Id" SortExpression="id" />
<asp:BoundField HeaderText="Order By Person" DataField="orderedByLastname" SortExpression="orderedByLastname" />
<asp:BoundField HeaderText="Last Modified By Person" DataField="lastModifiedByLastname" SortExpression="lastModifiedByLastname" />
</Columns>
</asp:GridView>
C#
public EntityCollection<OrderEntity> GetMany(int pageNumber, int pageSize, ISortExpression sort)
{
EntityCollection<OrderEntity> orders = new EntityCollection<OrderEntity>(new OrderEntityFactory());
IRelationPredicateBucket b = new RelationPredicateBucket();
b.Relations.Add(OrderEntity.Relations.PersonEntityUsingOrderedBy, "orderedBy");
b.Relations.Add(OrderEntity.Relations.PersonEntityUsingLastModifiedBy, "lastModifiedBy");
IPrefetchPath2 pp = new PrefetchPath2((int)DAL.EntityType.OrderEntity);
pp.Add(OrderEntity.PrefetchPathOrderdBy);
pp.Add(OrderEntity.PrefetchPathLastModifiedBy);
using (DataAccessAdapter a = new DataAccessAdapter())
{
a.FetchEntityCollection(orders, b, 0, sort, pp, pageNumber, pageSize);
}
return orders;
}
protected void Llblgen_PerformSelect(object sender, PerformSelectEventArgs2 e)
{
LLBLGenProDataSource2_1.EntityCollection = GetMany(e.PageNumber, 100, e.Sorter);
}
Based on the psudo code above, I'm trying to figure out how to sort based on the "lastname" field yet distinguish between the lastname of a person who made an order (prefetched/related PersonEntity), and a person who last modified an order (another prefetched/related PersonEntity). Using the llblgen designer to create a "field mapped on related field" helps in setting a unique dataField name for the column, but when the PerformSelectEventArgs2.Sorter uses the same "field mapped on related field" that the dataField uses, the resulting sql is invalid.
Thanks again,