2009-08-26 7 views
2

Ich habe derzeit zwei Entitäten in LLBLGGen und möchte sie zusammenführen, um in einer Tabelle auszugeben, die in einem DevExpress GridControl auf die gleiche Weise wie 2 Tabellen zusammen mit einem inneren Join verwendet werden soll.LLBLGGen "Flattern" Tabellenrelationen

Weiß jemand, wie man das mit LLBLGen macht?

+0

Eine Option besteht darin, eine TypedList im Designer zu erstellen. Ich hatte Erfolg in der Vergangenheit. –

Antwort

2

Dann ist die Alternative eine dynamische Liste erstellen (unter Code stammt aus der Hilfedatei) - es ist leider ziemlich ausführlich.

DataAccessAdapter adapter = new DataAccessAdapter(); 
ResultsetFields fields = new ResultsetFields(3); 
fields.DefineField(EmployeeFields.FirstName, 0, "FirstNameManager", "Manager"); 
fields.DefineField(EmployeeFields.LastName, 1, "LastNameManager", "Manager"); 
fields.DefineField(EmployeeFields.LastName, 2, "AmountEmployees", "Employee", AggregateFunction.Count); 
IRelationPredicateBucket bucket = new RelationPredicateBucket(); 
bucket.Relations.Add(EmployeeEntity.Relations.EmployeeEntityUsingEmployeeId, "Employee", "Manager", JoinHint.None); 

IGroupByCollection groupByClause = new GroupByCollection(); 
groupByClause.Add(fields[0]); 
groupByClause.Add(fields[1]); 
DataTable dynamicList = new DataTable(); 
adapter.FetchTypedList(fields, dynamicList, bucket, 0, null, true, groupByClause); 
+0

Danke. Das sah nach dem "richtigen" Weg aus den Hilfedateien aus. –

3

Wenn Sie LLBLGen 2.6 verwenden, können Sie den LINQ verwenden, um die Ausgabe mit LLBLGGen LINQ Provider zu reduzieren.

Etwas auf dem Weg des (pseudo code)

var flat = from x in db.entitiesa() 
      from y in db.entitiesb() 
      select new { x.Name, y.Address } 

und nur auf die Gittersteuervariable 'flach' werfen.

+0

Leider bin ich auf .net 2.0 für dieses Projekt. –