2009-08-26 4 views
2

J'ai actuellement deux entités dans LLBLGen et je voudrais les fusionner pour les exporter vers une table à utiliser dans un DevExpress GridControl de la même manière que 2 tables jointes avec une jointure interne.LLBLGen "Aplatissement" des relations de table

Est-ce que quelqu'un sait comment faire avec LLBLGen?

+0

Une option consiste à créer une TypedList dans le concepteur. J'ai déjà eu du succès dans le passé. –

Répondre

2

Ensuite, l'alternative est de créer une liste dynamique (ci-dessous le code provient du fichier d'aide) - il est malheureusement assez verbeux.

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

Merci. Voilà à quoi ressemblait la «bonne» façon de le faire à partir des fichiers d'aide. –

3

Si vous utilisez LLBLGen 2.6, vous pouvez utiliser le LINQ pour aplatir la sortie à l'aide du fournisseur LLBLGen LINQ.

Quelque chose sur le chemin de (code pseudo)

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

et simplement jeter variable 'plat' au contrôle du réseau.

+0

Malheureusement, je suis sur. Net 2.0 pour ce projet. –

Questions connexes