LLBLGen“扁平化”表关系

时间:2009-08-26 18:28:22

标签: .net orm llblgenpro

我目前在LLBLGen中有两个实体,并希望将它们合并在一起输出到一个表,以便在DevExpress GridControl中使用,就像2个表与内连接一起连接一样。

有没有人知道如何用LLBLGen做到这一点?

2 个答案:

答案 0 :(得分:3)

如果您使用的是LLBLGen 2.6,则可以使用LINQ使用LLBLGen LINQ Provider来平滑输出。

正在路上的东西(伪代码)

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

并将变量'flat'抛出到网格控件。

答案 1 :(得分:2)

然后另一种方法是创建一个动态列表(下面的代码来自帮助文件) - 遗憾的是它非常详细。

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);