【问题标题】:LLBLGen "Flattening" Table RelationsLLBLGen“扁平化”表关系
【发布时间】:2009-08-26 18:28:22
【问题描述】:

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

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

【问题讨论】:

  • 一种选择是在设计器中创建一个 TypedList。过去我在这方面取得了成功。

标签: .net orm llblgenpro


【解决方案1】:

如果您使用的是 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' 扔给网格控件。

【讨论】:

  • 不幸的是,我正在为这个项目使用 .net 2.0。
【解决方案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);

【讨论】:

  • 谢谢。这就是帮助文件中看起来“正确”的方法。
猜你喜欢
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 2016-01-14
相关资源
最近更新 更多