我需要一些帮助。 我有表A(主)和表B(儿童)。 我正在使用DevExpress XAF。 我需要在Child中评估最后一行并将其显示给主表A中的用户。
让我们说表A有followind字段: OID, 雇员, 地址 [名称] =为员工提交的持久性
让我们说表B有以下字段: OID, 员工(参考标准A), 状态(打开,已分配,已关闭), 状态日期
子表每个主记录至少有2条记录: Oid员工状态状态日期 1 Mark打开2015-12-12 2 Mark Markigned 2015-12-13 3 Mark关闭2015-12-29
到目前为止,我用过这个:
[PersistentAlias("TableB[Status != 'Closed']")]
public GetStatus
{
get
{return EvaluateAlias(GetStatus)};
}
我想在主表A中显示每个员工的最后一个子列表状态。 当我运行此代码时,我得到Open,因为它与Closed不同,但我想要的是如果表B中的最后一行是Status = Closed,则应该返回Closed。 不知道我是否正确解释了! 有任何想法吗? 感谢
答案 0 :(得分:0)
您应该使用聚合函数来选择集合的最后一个元素,例如,max和single函数。
[PersistentAlias("TableB.Max(Date)")]
public DateTime? GetLastActionDate
{
get
{return (DateTime?)EvaluateAlias(GetLastActionDate)};
}
[PersistentAlias("TableB[Date == GetLastActionDate].Single()")]
public TableB GetStatus
{
get
{return (TableB)EvaluateAlias(GetStatus)};
}