【问题标题】:Complex rule for XPO classXPO 类的复杂规则
【发布时间】:2015-10-16 22:42:25
【问题描述】:

我想为 XPO 类完成一个简单的规则。

情况如下: - 我有一个车辆类:

public class Vehicle : BaseObject
{
    public Vehicle(Session session)
        : base(session)
    {
    }
    public override void AfterConstruction()
    {
        base.AfterConstruction();
    }

    //...properties

    [Association, DevExpress.Xpo.Aggregated]
    public XPCollection<MeterEntry> MeterEntries
    {
        get { return GetCollection<MeterEntry>("MeterEntries"); }
    }

}
  • 还有一个 MeterEntry 类:

    公共类 MeterEntry : BaseObject { 公共 MeterEntry(会话会话) :基础(会话) { } 公共覆盖无效AfterConstruction() { base.AfterConstruction(); }

    private int _MeterValue;
    private DateTime _Date;
    
    public int MeterValue
    {
        get
        {
            return _MeterValue;
        }
    
        set
        {
            SetPropertyValue("MeterValue", ref _MeterValue, value);
        }
    }
    
    public DateTime Date
    {
        get
        {
            return _Date;
        }
    
        set
        {
            SetPropertyValue("Date", ref _Date, value);
        }
    }
    
    [Association]
    public Vehicle Vehicle { get; set; }
    

    }

我试过这条规则:

RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <=  xxx ].Max(MeterValue)")]

在 xxx 中,我想要当前对象的 Date smtng 的值,例如:TargetObject.Date 但它不起作用,有什么想法吗?

【问题讨论】:

    标签: devexpress xaf xpo


    【解决方案1】:

    您需要使用 ^ 字符。

    RuleCriteria("MeterValue >= Vehicle.MeterEntries[Date <= ^.^.Date].Max(MeterValue)")]
    

    查看更多关于父关系遍历运算符的信息:https://documentation.devexpress.com/#CoreLibraries/CustomDocument4928

    【讨论】:

    • 我找到了另一个解决方案,而不是使用 ^ 我使用 '@This.Date'
    猜你喜欢
    • 2012-05-13
    • 2011-12-21
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2015-05-22
    • 2017-08-07
    • 2015-11-08
    • 2019-08-09
    相关资源
    最近更新 更多